我有一段代码,看起来像这样,
#ifdef A
printf("A");
#else
#ifdef B
printf("B");
#endif
#endif
else
和 ifedef B
可以按照 this替换为
elif defined B
。
但是,C语言中不是有elifdef
指令吗?
注意:
elif B
不适合这个,它需要一个表达式;其中 A
、B
是编译时开关,没有为它们定义值。
指令是
#elifdef
(也可能是 #elifndef
),从 C23 开始。根据cppreference,它们似乎已经在 GCC 12 和 Clang 13 中实现,是在 N2645 中提出的,也是工作草案 N3096 的一部分。
#ifdef A
printf("A");
#elifdef B
printf("B");
#endif