像这样的声明是什么意思?
int x = ( { int a; scanf( "%d", &a ); a ; } ) ;
它编译并运行相当于:
int x;
scanf( "%d", &x );
这似乎是某种匿名函数调用之类的,但我不确定。我没有遇到过像({})
以前那样的说法,我也无法在网上找到任何解释。任何帮助将不胜感激,谢谢:)
语境:
这是扩展以下代码中的宏时得到的代码:
#define SI ({int a;scanf("%d",&a);a;});
int x = SI;
这是某人在编程比赛中使用的代码。