我试图做一个if / else语句。但我想将else语句包装在#ifdef
宏测试中。
if (check1)
{
...
}
#ifdef MACRO
else
{...}
#endif
这是允许的吗?
答案 0 :(得分:4)
预处理器在编译器之前运行。如果预处理器评估宏并生成有效的c / c ++代码(如您所包含的示例),则它是有效的用法。
答案 1 :(得分:3)
当然你可以,HashMap<String, Foo> = fooList.stream().collect(Collectors.toMap(Foo::getId, o -> o))
。预处理器在编译之前对此进行评估,因此编译器只看到这个
C
但你不能/不应该这样做
if (check1)
{
...
}
答案 2 :(得分:2)
这是允许的吗?
是的,这是有效的。你有什么疑问?