在预处理器指令中使用除 # 以外的其他字符
Use another char than # in preprocessor directives
有没有办法在定义预处理器指令时使用 #
以外的其他字符?示例:
而不是:
#if 1
foo
#endif
使用?
,例如:
?if 1
foo
?endif
存在用于替换某些字符的三字母序列。特别是,#
字符可以替换为 ??=
。所以下面的代码是有效的:
??=if 1
foo
??=endif
但是您不能随意替换。
您有两个选择:
- 三字母组:
??=if 1
- 二合字母:
%:if 1
这两个都是 100% 标准 C,但同时被认为是非常糟糕的做法。然而,主流编译器倾向于警告三字母而不是二字母,所以二字母可能是较小的邪恶。
有没有办法在定义预处理器指令时使用 #
以外的其他字符?示例:
而不是:
#if 1
foo
#endif
使用?
,例如:
?if 1
foo
?endif
存在用于替换某些字符的三字母序列。特别是,#
字符可以替换为 ??=
。所以下面的代码是有效的:
??=if 1
foo
??=endif
但是您不能随意替换。
您有两个选择:
- 三字母组:
??=if 1
- 二合字母:
%:if 1
这两个都是 100% 标准 C,但同时被认为是非常糟糕的做法。然而,主流编译器倾向于警告三字母而不是二字母,所以二字母可能是较小的邪恶。