Tag: static if

C99的预处理器中的static_if

是否可以在C99中实现static_if? #define STATIC_IF(COND, …) \ if (COND) MACRO1(__VA_ARGS__); \ else MACRO2(__VA_ARGS__); 我怎样才能在这里正确实现STATIC_IF(…) ? 根据COND ,参数应该传递给MACRO1或MACRO2 ,但两个宏的参数看起来不同。 COND是静态可测试的,类似sizeof (…) > 42 。 #if COND然后#define STATIC_IF MACRO1 …对我的用例不起作用。 我不能使用编译器特定的解决方案。