C中的前缀和后缀运算符挑战

时间:2016-11-07 20:23:48

标签: c prefix

在C中,表达式a=b+++c的默认行为是什么? 什么是其他前缀和后缀运算符会导致编译器遇到类似的挑战?

1 个答案:

答案 0 :(得分:3)

C11规范草案,第6.4节,第4段:

  

如果输入流已被解析为预处理令牌,则最多为a   给定字符,下一个预处理标记是最长的序列   可以构成预处理令牌的字符。

第6段的例子:

  

程序片段x +++++ y被解析为x ++ ++ + y,这违反了   对增量运算符的约束,即使解析x ++ + ++ y   可能会产生正确的表达。

正如@EugeneSh.指出的那样,编译器没有挑战,这对读者来说只是一个挑战。