模糊的C++语法

Gea*_*phy 3 c++ syntax

可能重复:
C++逗号运算符

大约一年前,我在我正在编写的编码项目中注意到一些模糊的语法:

table_value = table_index += 2, valueFromTable(table_index);
Run Code Online (Sandbox Code Playgroud)

有没有人认识到这一点?它就像一个带有附加声明的作业.这是在我们的整个跨平台编译器套件中编译的,所以我很确定它有效的C++,但我从未见过类似的东西.

任何见解将不胜感激.

Gearoid

编辑:继承人一些工作代码:

#include <iostream>
using namespace std ;

int valueFromTable(int a) { return a ; }

int main()
{
  int table_index = 0 ;
  int table_value = table_index += 2, valueFromTable(12);
  cout<<table_value<<endl;
  return 0 ;
}
Run Code Online (Sandbox Code Playgroud)

SLa*_*aks 6

这是逗号运营商.
它是标准的C和C++,但却非常不满意.

它计算两个参数,并返回第二个参数的结果.

  • @Steve:"严重皱眉"并不意味着"总是一个坏主意",它只是意味着有人总是认为这是一个坏主意.我把它称为"被动 - 侵略性的声音":"哦不,这不是*我*批评*你的*代码.只是人们不喜欢它,一般来说,当它发生时".维基百科吸引那些小[谁?]标签的那种概括;-) (3认同)