为bool类型定义名称代替"true"和"false"

1 c++ boolean c-preprocessor

我想使用a bool在加载X和从文件加载Y之间来回切换.我不想使用"true"和"false",因为它不会使代码清晰.我宁愿使用像LOAD_X或LOAD_Y这样的东西...下面的代码是这样做的吗?或者,还有更好的方法?

#define LOAD_X true
#define LOAD_Y false
Run Code Online (Sandbox Code Playgroud)

编辑:好的,所以它似乎enum是要走的路......但命名方案应该是什么?像所有大写字母,或第一个单词的小写字母,后续单词的大写字母等.

Jam*_*lis 6

你可以使用枚举:

enum LoadType {
    LoadY,
    LoadX
};
Run Code Online (Sandbox Code Playgroud)

或者,您可能更喜欢使用命名空间来约束枚举器的范围:

namespace LoadType {
    enum Type {
        LoadY,
        LoadX
    };
};
Run Code Online (Sandbox Code Playgroud)

使用枚举的优点是,如果你的函数采用LoadType(或LoadType::Type在第二个例子中),你不能传递任何整数或bool; 你只能传递一个枚举器(或者显式地转换为枚举类型的东西,这在代码审查中很容易发现).