【发布时间】:2015-06-24 09:21:08
【问题描述】:
我最近才发现,在设置枚举变量的值时,多个变量可以具有相同的值。例如,下面的代码是完全正确的:
enum my_enum
{
A = 3,
B = 4,
C = 3,
D = 5
};
但是,在我的框架中,我必须手动设置每个变量,因为它用于将错误代码传达给其他系统。如果不要求其他团队也进行修改,我无法更改错误代码的值。
我将所有错误代码重新组合到一个枚举中,以确保我们不会因为不同的原因重用相同的错误代码(以前就是这种情况)。但是现在,没有什么能阻止任何人为不同的错误重用相同的值。
如果我将相同的值分配给枚举中的不同名称,有没有办法让编译器返回错误?
我可以使用 gcc 或 clang 进行编译。
【问题讨论】:
-
您可以编写一个单元测试来检查给定枚举中所有整数值的唯一性。
-
最好不要明确指定值,除了第一个值。
标签: c enums compilation