#include <stdio.h>
int main() {
int x = ({int a = 2; a;});
printf("%d\n", x);
}
输出: 2
答案 0 :(得分:15)
这是GCC提供的名为statement expressions的C / C ++语言的非标准扩展。如果您尝试使用-pedantic
标志进行编译,则会收到警告“ISO C禁止表达式中的支撑组”。它是不可移植代码,应尽可能避免使用。
答案 1 :(得分:2)
({ ... })
语法是该语言的GCC扩展。可以把它想象成一个类似于块的表达式,它计算出块中最后一个语句的值。
答案 2 :(得分:1)
它声明一个名为'a'的局部变量,为其赋值'2'然后将值赋给x。