我一直在查看一些 MFC 代码,我遇到了这个表达式。它在 OnInitDialog() 函数中,看起来不像是特定于 MFC 的。变量有一些名字,值为 0。
int volatile something, somethingElse; //this was global
something, somethingElse = 0; //this was inside the function
这在 C++ 中有意义吗?我知道逗号运算符是如何工作的,尽管在像这里这样的自由形式中它应该是分隔表达式。变量名也是表达式吗?这段代码确实可以编译,那么它是如何工作的呢?
最佳答案
这可能是程序中的一个错误。声明
a, b = c;
完全等同于
b = c;
由于逗号运算符从左到右计算并丢弃除最后一个之外的所有值。由于表达式 a 没有副作用,它本质上是一个空操作。
我怀疑这是程序员错误或将代码从不同语言错误地翻译成 C++。你应该联系作者让他们知道这件事。
希望这对您有所帮助!
关于c++ - 表达式 "variable, variable = value;",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9101999/