c++ - 表达式 "variable, variable = value;"

标签 c++ comma-operator

我一直在查看一些 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/

相关文章:

c++ - 在 Linux 上构建静态 C++ 库 - 我需要链接到其他库吗?

c++ - 卡在阵列上

循环和 if-else 中的逗号 vs && 运算符

c - 逗号运算符 , 有什么作用?

c++ - 由于变量是局部变量而不是全局变量导致的运行时错误

c++ - 从 Mac OS X 上的堆栈溢出中恢复

c++ - 使用 LD_PRELOAD 和 C++ 中的全局范围对象加载堆分析器

c - 警告 : right-hand operand of comma expression has no effect [-Wunused-value] in C

c - C 中逗号运算符的行为

c - 逗号运算符 , 的作用是什么?