Может ли программа C распечатать определение структуры? Было бы здорово иметь имена элементов, но было бы достаточно просто упорядоченного списка типов данных (и длины массива в случае массивов).
Я искал директивы препроцессора для достижения этого, но не смог их найти. Существует ли директива препроцессора, которая может захватывать аннотированную часть кода и использовать ее как переменную #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]}
Просто к сведению, это устройство на базе ARM с ограниченными ресурсами.
Я не хочу вручную копировать и вставлять код структуры в оператор печати. Если код структуры изменится, а оператор печати не изменится, это приведет к неверным результатам.
#define structname_code ...
, а также создать его экземпляр. - person Marcus Müller   schedule 15.10.2016