我们如何使用嵌套 if else 和 #define 预处理器

udi*_*r11 3 c c++ c-preprocessor

#define len(a) if (a == 8)   1       \
               else if (a == 3) 0    \
               else -1
Run Code Online (Sandbox Code Playgroud)

这段代码只是一个例子,我们如何使用嵌套的 if else。我不想使用三元运算符,因为在这种情况下我不能使用 else if 语句。

Ayx*_*xan 6

不要滥用预处理器。使用真正的函数:

constexpr auto len(int const a) {
    if (a == 8) return 1;
    if (a == 3) return 0;
    return -1;
}
Run Code Online (Sandbox Code Playgroud)

  • @_静态_断言,可以_,但要强制在编译时完成,您需要在需要常量表达式的上下文中使用结果。 (2认同)