#include <stdio.h>
int main()
{
int sum = 0, result = (({for (int i = 0; i < 5; i++) sum += i;}), sum);
printf("result = %d\n", result);
return 0;
}
显示
result = 10
我使用的是GCC中C语言的默认版本.是专门针对GCC的吗?我知道(a, b)
返回b
,但当a
是{}
块时,我没想到它会起作用.有没有人能解释它为什么起作用,为什么要用括号把它放在方块上才能使它起作用?
编辑:这是一个我正在试用的#define
的人为简化的例子.一些程序员的 comments (谢谢)澄清了这一点.案子结案了.