Возможно ли для программы C напечатать определение структуры? Было бы здорово иметь имена пользователей, но достаточно упорядоченного списка типов данных (и длины массива в случае массивов).GCC - Распечатать определение структуры
Я искал инструкции препроцессора для достижения этого, но не смог найти. Существует ли препроцессорная директива, которая может захватить аннотированную часть кода и использовать ее как переменную #define. Если это так, я мог бы инициализировать некоторые переменные sting, чтобы удерживать значение переменных #define.
Например, структура, как это получить печатную как есть
struct foo{
int a;
char b;
short arr[6];
}
или как этот
struct s{
int m1;
char m2;
short m3[6];
}
Форматирование не важно, как долго, как структура может быть воссоздана из данных. Так что что-то вроде этого тоже хорошо:
s{int,char,short[10]}
Just FYI это устройство с ограниченным доступом на основе ARM.
Я не хочу вручную копировать код структуры в инструкцию печати. Если код структуры изменяется, а оператор печати не изменяется, это приведет к неправильным результатам.
Не в стандартном C, насколько я знаю. И определенно не через препроцессор C (под «переменной #define», вы имеете в виду макрос препроцессора C), поскольку он не имеет ни малейшего представления о том, как работает C. –
@ Rhymoid не согласится на это; вы можете использовать препроцессор, чтобы сделать копию рассматриваемого кода для '#define structname_code ... ', а также создать его экземпляр. –
«Я не хочу, чтобы вручную скопировать код структуры» - вы можете заставить программу читать собственный файл исходного кода. – usr2564301