我一直在浏览一些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++中是否有意义?我知道逗号运算符是如何工作的,尽管像这里的自由形式它应该是分离表达式.变量名也是表达式吗?这段代码是编译的,所以这是如何工作的?
这可能是程序中的错误.该声明
a, b = c;
Run Code Online (Sandbox Code Playgroud)
完全等同于
b = c;
Run Code Online (Sandbox Code Playgroud)
由于逗号运算符从左到右进行求值并丢弃除最后一个之外的所有值.由于表达式a没有副作用,因此它基本上是无操作.
我怀疑这可能是程序员错误,也可能是将不同语言的代码错误地翻译成C++.您应该联系作者,让他们了解这一点.
希望这可以帮助!
| 归档时间: |
|
| 查看次数: |
150 次 |
| 最近记录: |