Dhr*_*tra 0 subtraction decrement
如果我写一个像(在c中)的代码
x=1;
z=2;
y=x---z;
Run Code Online (Sandbox Code Playgroud)
将前两个 - 作为后减量处理,后来作为减法处理
或者第一个 - 将被视为减法,其他两个将被视为预先减少
如果我放一个空格使其成为另一个(因为在c程序中不会被空格改变)该怎么办?
根据C11标准,章节§6.4,词汇元素, (强调我的)
如果输入流已被解析为预处理令牌直到给定字符,则下一个预处理令牌是可构成预处理令牌的最长字符序列.[..]
所以,
y=x---z;
Run Code Online (Sandbox Code Playgroud)
是
y= (x--) - z;
Run Code Online (Sandbox Code Playgroud)
这也称为最大蒙克规则.