增加疯狂

时间:2018-02-26 12:38:27

标签: c compiler-construction

我目前正在为C语言编写一个编译器,偶然发现了一些非常特殊的东西。我知道增量运算符++可以是前缀或后缀,我知道它可以在表达式中使用。

  • 所以行a++,其中a是一个整数变量,应该是合法的。
  • 行:(a++)-(++b)也应合法。
  • 行:a++-++b也是合法的。
  • 行:a++/++b也是合法的。

这使我得出结论: <variable><++><operator><++><variable>,其中operator是任何二元运算符应该是合法的。

令我困惑的是,a+++++b行不合法。为什么这不合法?是否与GCC如何使表达式a+++++b有关?

我正在运行GCC 7.2.0。

0 个答案:

没有答案