表达式"变量,变量=值;"

dre*_*eta 4 c++ comma

我一直在浏览一些MFC代码,我遇到了这个表达式.它在OnInitDialog()函数中,看起来不像是MFC特有的.变量有一些名称,值为0.

int volatile something, somethingElse; //this was global

something, somethingElse = 0; //this was inside the function
Run Code Online (Sandbox Code Playgroud)

这在C++中是否有意义?我知道逗号运算符是如何工作的,尽管像这里的自由形式它应该是分离表达式.变量名也是表达式吗?这段代码是编译的,所以这是如何工作的?

tem*_*def 6

这可能是程序中的错误.该声明

a, b = c;
Run Code Online (Sandbox Code Playgroud)

完全等同于

b = c;
Run Code Online (Sandbox Code Playgroud)

由于逗号运算符从左到右进行求值并丢弃除最后一个之外的所有值.由于表达式a没有副作用,因此它基本上是无操作.

我怀疑这可能是程序员错误,也可能是将不同语言的代码错误地翻译成C++.您应该联系作者,让他们了解这一点.

希望这可以帮助!