c -在预处理器指令中使用除#以外的另一个字符



在定义预处理器指令时,是否有方法使用另一个字符而不是#?例子:

代替:

#if 1
foo
#endif

使用?,例如:

?if 1
foo
?endif

您有两个选择:

  • Trigraphs:??=if 1
  • 有向图:%:if 1

这两个都是100%标准的C语言,但同时也被认为是非常糟糕的做法。然而,主流编译器倾向于警告三向图而不是有向图,所以有向图可能是比较好的选择。

存在用于替换某些字符的三字符序列。特别是,#字符可以替换为??=。所以下面的代码是有效的:

??=if 1
foo
??=endif

但是你不能随意替换。

相关内容

  • 没有找到相关文章

最新更新