我想使用bool
在加载X和从文件加载Y之间来回切换。我不想使用“true”和“false”,因为它不会使代码清晰。我宁愿使用像LOAD_X或LOAD_Y这样的东西...下面的代码是这样做的吗?或者有更好的方法吗?
#define LOAD_X true
#define LOAD_Y false
编辑:好的,所以似乎enum
是要走的路......但命名方案应该是什么?像所有大写字母一样,或第一个单词的小写字母,后续单词的大写字母等
答案 0 :(得分:6)
您可以使用枚举:
enum LoadType {
LoadY,
LoadX
};
或者,您可能更喜欢使用命名空间来约束枚举数的范围:
namespace LoadType {
enum Type {
LoadY,
LoadX
};
};
使用枚举的优点是,如果你的函数在第二个例子中采用LoadType
(或LoadType::Type
),则不能传递任意整数或bool;你只能传递一个枚举器(或者显式地转换为枚举类型的东西,这在代码审查中很容易发现)。
答案 1 :(得分:3)
我想这有用,如果你只有两种选择。我很想去一个枚举:
enum LOADMODE {
LOAD_X,
LOAD_Y
};
至少,偏好宏而不是宏:
const bool LOAD_X = true;
const bool LOAD_Y = false;
他们将遵守范围规则,并且在没有意识到姓名冲突的情况下不会默默地破坏。
答案 2 :(得分:3)
我会使用枚举代替。仅仅因为有两种选择,并不意味着类型应该是bool
enum load_type { loadX, loadY };
答案 3 :(得分:-1)
我认为Load X IS LOAD。 小写字体看起来更友好,可以选择鲜艳的颜色。 枚举LoadType { LoadY, LoadX 没关系。