我目前正在为C语言编写一个编译器,偶然发现了一些非常特殊的东西。我知道增量运算符++
可以是前缀或后缀,我知道它可以在表达式中使用。
a++
,其中a
是一个整数变量,应该是合法的。(a++)-(++b)
也应合法。a++-++b
也是合法的。a++/++b
也是合法的。这使我得出结论:
<variable><++><operator><++><variable>
,其中operator是任何二元运算符应该是合法的。
令我困惑的是,a+++++b
行不合法。为什么这不合法?是否与GCC如何使表达式a+++++b
有关?
我正在运行GCC 7.2.0。