我想,标题很清楚。我对此并不完全确定,而且我无法通过谷歌找到一个好的答案(唉,我还没有致力于标准的艺术),所以我问:
int i = x++, j = x++;
这是定义的吗?我很确定i = x++, j = x++;
作为一个正常的语句将是未定义的行为是逗号运算符,它是一个序列点并且是合法的,但是没有来源很清楚初始化程序是以分号结束还是下一个变量开始被声明,并且由于这不是使用的逗号运算符,因此我找不到明确的答案。所以要么a)逗号结束初始化程序,是一个序列点,并且有效,要么b)它没有。它是哪一个?
为了排除,我知道我应该简化头痛并将其写为:
int i = x++;
int j = x++;
并保证它已定义。出于好奇,我问得更多。