假设我有
#define l 4
我想要一个类似于以下内容的枚举
enum Biscuits{
b1, b2, b3, b4
}
换句话说,饼干的长度取决于l是多少。我能想到的唯一方法是创建另一个包含b1,b2,b3,b4的#defined变量,然后用它来定义Biscuits。还有其他办法吗?
答案 0 :(得分:0)
保持简单(除非你有很多变化):
#if l == 1
enum Biscuits{ b1 };
#elif l == 2
enum Biscuits{ b1, b2 };
#elif ...
#endif
避免预处理器魔法提高了可读性。
答案 1 :(得分:0)
我不知道您希望代码有多灵活。我建议使用:
enum Biscuits{
#ifndef l
#error l is not defined
#else
#if (l >= 2 )
b1, b2
#endif
#if (l >= 4 )
, b3, b4
#endif
#if (l >= 6 )
, b5, b6
#endif
#if (l >= 8 )
, b7, b8
#endif
#endif
};