【发布时间】:2020-02-01 17:55:22
【问题描述】:
如果我这样做:
int j = ({int x = 7; x+3;});
在 i686-apple-darwin10-gcc-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5646) gcc 中它编译得很好。有问题的块({int x = 7; x+3;}) 返回最后一条语句的值作为块的值。如果您删除括号它不会编译。我可以期望这在大多数 C 编译器中都能工作吗?
另外,这个构造的名称是什么?我在搜索它时遇到了很多麻烦,因为搜索引擎不索引 () 或 {} 并且 C 是一个糟糕的搜索词。我也无法在我的任何书中找到任何关于它的内容,可能是因为我不知道该寻找什么。
【问题讨论】:
-
请不要指望它能够工作,也不要指望人们能够阅读您的代码。
标签: c