关于最佳做法和表现的非常简单的问题。我知道直接在代码中使用裸常量是个坏主意(例如-1表示“未分配”)。如果我能帮助它,我通常不喜欢使用预处理器,因为我不喜欢大喊(例如#define UNASSIGNED -1
)并且不喜欢打破将预处理器名称放在所有大写中的约定。所以我采用了匿名枚举:
enum {
Unassigned = -1
};
问题:与预处理器方法相比,是否存在运行时性能损失?这是个坏主意吗?
答案 0 :(得分:4)
没有运行时性能影响 - 在两种情况下,编译器都会知道它们只是值-1
。
但是,我认为最好的方法是为此使用正确的类型常量。例如:
const int Unassigned = -1;
(当然,用int
代替你的实际类型。
答案 1 :(得分:3)
应该没有性能影响。但是,为什么不只是const int Unassigned = -1
?