我一直在查看一些 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++ 的错误翻译。您应该联系作者让他们知道这一点。
希望这可以帮助!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)