在预处理器指令中使用除 # 以外的其他字符

Joã*_*ulo 0 c gcc c-preprocessor

有没有办法在定义预处理器指令时使用另一个字符#?例子:

代替:

#if 1
foo
#endif
Run Code Online (Sandbox Code Playgroud)

使用?,例如:

?if 1
foo
?endif
Run Code Online (Sandbox Code Playgroud)

Lun*_*din 5

您有两个选择:

  • 三字母组合:??=if 1
  • 有向图:%:if 1

这两个都是 100% 标准 C,但同时被认为是非常糟糕的做法。然而,主流编译器倾向于对三字母发出警告,但不会对二字母发出警告,因此二字母可能是危害较小的。