Анонимные структуры C11 через typedefs?

Анонимные структуры были добавлены в стандарт 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 ...). По моему прочтению самого стандарта, Я думаю, что это нормально, но при таком внимательном чтении легко облажаться.

15
задан bk. 4 February 2012 в 15:59
поделиться