int x = ({int y = 90; 109});解决方法

int x ({int y 90 109})C/C++ codeint x ({ int y 90 109 })int x (int y 90 109)int

int x = ({int y = 90; 109});

C/C++ code
int x = ({ int y = 90; 109; });int x = (int y = 90; 109;);int x = {int y = 90; 109}

只有第一个可以通过编译。。
想知道在C语言中,这里的小括号,大括号都是什么意义?

[解决办法]
多换几个编译器
[解决办法]
gcc 4.4.1
三个全是错的。

[解决办法]
我觉得有两者的意义是
{}通常代表域,内部定义的变量在{}内部具有局部性。
()用于确定计算的优先级,或指明这是一个函数
当然不一定正确或者说的完整
[解决办法]
{}括起来表示一个block,在这里定义变量具有block作用域
()主要用来保证计算的优先级,
[解决办法]
第一个因为{}里面的内容被()括起来了,所以被认为是以{}这个复合语句的值来赋值给X,{}复合语句的值为最后一条单语句的值,所以最后X = 109;
2、3两个都不对,位于变量=右边,却不符合右值的语法!