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 を含む...) で動作します。標準自体を読む限り、問題ないと思います。