Moe*_*oeb 4 c parsing expression
我怎样才能理解表达式的解析
a = b+++++b---c--;
Run Code Online (Sandbox Code Playgroud)
在C?
我刚刚编写了上面的表达式,是的,我可以使用任何编译器检查结果,但我想知道的是我应该知道理解在C中解析这些表达式的基本规则.
从标准6.2(4):
如果输入流已被解析为预处理令牌直到给定字符,则下一个预处理令牌是可构成预处理令牌的最长字符序列.
他们甚至添加了这个例子:
示例2程序片段x +++++ y被解析为x ++ ++ + y,它违反了增量运算符的约束,即使解析x ++ + ++ y可能产生正确的表达式.
所以你的声明:
a = b+++++b---c--;
Run Code Online (Sandbox Code Playgroud)
相当于:
a = b ++ ++ + b -- - c -- ;
Run Code Online (Sandbox Code Playgroud)