//test.c
struct ccc{
int t;
};
struct abc{
int a;
int b;
int c;
struct ccc dd;
};
int main(int argc, char * argv[]){
struct abc xx,yy;
xx.a=1;
xx.b=2;
xx.c=3;
xx.dd.t=4;
yy=xx;
return 0;
}
结果在gcc上不带任何选项编译通过,带-std=c89或-ansi用89规范和ansi规范而不打开gcc扩展仍然编译通过,通过GDB查看,发现赋值的确是针对值的,而不是改变了变量指针。然后在VC2005上也可以编译通过并运行,看来C89和ANSI规范中的确已经允许C语言中对结构体变量进行赋值,老谭的书应该修正一下了。
| 论坛热门帖子: | [lch203] 写得蛮好的linux学习笔记(10-21) [黑马制造] 学习java的30个目标(10-19) [笑傲股林] 做测试半年了,有点迷茫,应该再学些什么提高自己的测试水平和测试能力呢?(10-19) [udp8589] 大家用google的来吱一声? 用百度的~~也来报道下?(10-18) [沂偌掳兆] 本人总结的一些认为C++比较经典的书籍,希望对大家有用(10-18) |
| TAG标签: | 支持 结构 何时 里面 int 通过 变量 struct gcc 编译 |
注册
个人空间
