读书人

[C语言] -std=c99 反是不支持嵌套结构

发布时间: 2014-01-23 14:48:04 作者: rapoo

[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

读书人网 >C++

热点推荐