在C中,表达式a=b+++c
的默认行为是什么?
什么是其他前缀和后缀运算符会导致编译器遇到类似的挑战?
答案 0 :(得分:3)
C11规范草案,第6.4节,第4段:
如果输入流已被解析为预处理令牌,则最多为a 给定字符,下一个预处理标记是最长的序列 可以构成预处理令牌的字符。
第6段的例子:
程序片段x +++++ y被解析为x ++ ++ + y,这违反了 对增量运算符的约束,即使解析x ++ + ++ y 可能会产生正确的表达。
正如@EugeneSh.指出的那样,编译器没有挑战,这对读者来说只是一个挑战。