我正在尝试将以下概念添加到我的C代码中(CMAKE_*定义彼此独立):
#define DEF N
#ifdef CMAKE_X
redefine DEF (DEF + CMAKE_X)
#endif
#ifdef CMAKE_Y
redefine DEF (DEF + CMAKE_Y)
#endif
#ifdef CMAKE_Z
redefine DEF (DEF + CMAKE_Z)
#endif
...我正在寻找比一大堆复杂的嵌套ifdef-s语句更好的方法。还有别的选择吗?
发布于 2018-05-29 18:56:34
看起来你在寻找类似这样的东西:
#define DEF_0 N
#ifdef CMAKE_X
#define DEF_X (DEF_0 + CMAKE_X)
#else
#define DEF_X DEF_0
#endif
#ifdef CMAKE_Y
#define DEF_Y (DEF_X + CMAKE_Y)
#else
#define DEF_Y DEF_X
#endif
#ifdef CMAKE_Z
redefine DEF_Z (DEF_Y + CMAKE_Z)
#else
#define DEF_Z DEF_Y
#endif
#define DEF DEF_Z即建立中间宏,每个中间宏可以或可以不具有对前一个宏的添加。
https://stackoverflow.com/questions/50579800
复制相似问题