Анонимные структуры добавлены в стандарт C11, поэтому
typedef struct {
struct {int a, b};
int c;
} abc_struct;
является действительным и стандартным. Является ли также стандартом использовать typedef вместо полной декларации структуры? Например:.
typedef struct {
int a, b;
} ab_struct;
typedef struct {
ab_struct;
int c;
} abc_struct;
В документации GCC говорится, что это расширение Plan 9, но затем оно работает в несколько компиляторов, которые я пробовал (включая GCC...). Своим чтением самого стандарта, Я думаю, что все в порядке, но это вроде тесное чтение, которое легко испортить.