Possible Duplicate:
What's this C++ syntax that puts a brace-surrounded block where an expression is expected?
我刚刚遇到了这种奇怪的 C/C++ 语法:
#include <stdio.h>
int main() {
printf("%s",
({
static char b__[129];
b__[0] = 55;
b__[1] = 55;
b__[2] = 0;
b__;
})
);
}
使用 gcc 和 g++ (4.5.2) 可以正常编译和运行。这是我第一次看到这样的东西,我想知道这个语法到底是什么意思。我试过谷歌它,但我不知道这个结构叫什么。
最佳答案
他们被称为 statement expressions ,它是一个 GNU 扩展。在您的示例中,表达式的结果是 b__
.
关于c++ - 奇怪的 C/C++ 语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9431735/