使用C预处理器是否有可能做到这样的事情? 如果可能,正确的语法是什么? 我希望得到 “5” 作为答案,但实际上我得到了“7”。 谢谢
#include <stdio.h>
#define ENABLE_FEATURE_1 true
#define ENABLE_FEATURE_2 false
#define ENABLE_FEATURE_3 true
#if (ENABLE_FEATURE_1 == true)
#define FT_BIT_0 1
#else
#define FT_BIT_0 0
#endif
#if (ENABLE_FEATURE_2 == true)
#define FT_BIT_1 2
#else
#define FT_BIT_1 0
#endif
#if (ENABLE_FEATURE_3 == true)
#define FT_BIT_2 4
#else
#define FT_BIT_2 0
#endif
#define ENABLED_FEATURES (FT_BIT_0 + FT_BIT_1 + FT_BIT_2)
int main() {
printf("Enabled Features: %i", ENABLED_FEATURES);
return 0;
}