我不明白编译器在这里做了什么以及为什么它可以工作 c++ 代码
#include <cstdio>
int main()
{
printf( ({ // (1)
struct some_noize_struct {
// there may be another code
};
42;
"abc";
}) // (2)
);
return 0;
}
(1) 和 (2) 大括号之间的表达式类型是 const char*。经过一些实验后,我发现了由最后一部分确定的那种类型的 (1)-(2)-表达式。
这是一个示例代码。它适用于 c++11 及更高版本。 http://cpp.sh/5tb47
我的问题:它是如何工作的。