在代码中声明常量或使用数字

Fre*_*ter 2 c++ const constants

所以,我有这个C++测试,老师很难声明常量,而不是直接在代码中使用数字.在下面的例子中,我甚至将ZERO声明为常量.

这是不必要的还是这是一件好事?这种方式会占用更多内存还是使代码"变慢"?

int main() {

    int kmStart, kmEnd;
    const int ZERO = 0;

    cout << "Starting Kms? ";
    cin >> kmStart;

    cout << "Ending Kms? ";
    cin >> kmEnd;

    while (kmStart < ZERO || kmStart > kmEnd) {
        cout << "Invalid Input!" << endl << endl;

        cout << "Starting Kms? ";
        cin >> kmStart;

        cout << "Ending Kms? ";
        cin >> kmEnd;
    }

}
Run Code Online (Sandbox Code Playgroud)

Bat*_*eba 5

constexpr int ZERO = 0; 几乎肯定会完全编译出来.

请注意新的关键字constexpr,从C++ 11开始.

对于你当前的代码,ZERO可能很好地编译出来,但即使它没有任何性能下降也可以忽略不计.输入/输出功能.

我想知道为什么你的老师ZERO要比你更清楚0.当他们看到一个人时,每个人都知道他们正在处理什么0.例如,ZERO可能是可行的意思'0',甚至"0"是完全不同的野兽:在调试时你总是要检查代码.