[C语言] -std=c99 反是不支持嵌套结构体
[C语言] -stdc99 反而不支持嵌套结构体啊#include stdio.htypedef struct{union{int ichar c}} std_
[C语言] -std=c99 反而不支持嵌套结构体啊
#include <stdio.h>
typedef struct
{
union
{
int i;
char c;
};
} std_c99_struct;
int main()
{
std_c99_struct str;
str.c = 'a';
printf("%d",str.i);
return 0;
}
不加std=c99可以编译通过,运行也是想要的结果.加了就报错了.
这里的union也可以是struct,用起来很爽.
至于为什么要这么用,因为std_c99_struct里有很多成员,偶尔有两个成员其实可以共用一段内存的(从不同时使用),单独为它们申明个类型也不太方便.这样直观明了.
[解决办法]得这么搞。
http://ideone.com/2lZRKO