首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

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

2014-01-23 
[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

热点排行