递减运算符与减法运算符

时间:2015-11-03 10:14:59

标签: subtraction decrement

如果我写一个像(在c中)的代码

    x=1;
    z=2;
    y=x---z;

将前两个 - 被视为后减法,后来一个被视为减法

或第一个 - 将被视为减法,其他两个将被视为预减法

如果我放一个空格使其成为另一个(因为在c程序中不会被空格改变)该怎么办

1 个答案:

答案 0 :(得分:6)

根据C11标准,章节§6.4,词汇元素(强调我的)

  

如果输入流已被解析为预处理令牌,直到给定的字符,那么   下一个预处理令牌是最长的字符序列,可以构成一个   预处理令牌。 [..]

所以,

y=x---z;

y= (x--) - z;

这也称为Maximal munch规则。