如何确保在编译时将COLOR_NAMES填充为正确的大小?如果添加了一种新的颜色,比如COLOR_4 (因此N_COLORS会自动递增),编译器会告诉我COLOR_NAMES没有填充到合适的大小。
我在网上找到的大多数答案都是针对运行时的,而不是编译时的。
这是用于C风格的表示法(没有使用STL和其他库)。
enum Colors
{
COLOR_1,
COLOR_2,
COLOR_3,
N_COLORS;
};
const char* COLOR_NAMES[N_COLORS] =
{
/* COLOR_1 */ "Color1",
/* COLOR_2 */ "Color2",
/* COLOR_3 */ "Color3"
};
const char* Blah()
{
Colors color;
...
printf("%s blah blah\n", COLOR_NAMES(color));
}
https://stackoverflow.com/questions/34669164
复制相似问题