You*_*mil 1 c++ integer boolean literals implicit-conversion
bool在C++中,将a赋值给true和将其赋值给1(或任何非零整数)之间有什么区别吗?
我见过许多有竞争力的程序员甚至在提前编写代码的情况1下都使用true而不是,所以我想知道除了打字速度更快之外是否还有任何好处。
...并将其分配给 1(或任何非零整数)?
在您的简单示例中,效果是相同的。
// all true:
bool foo = true;
bool bar = 1;
bool baz = 123;
Run Code Online (Sandbox Code Playgroud)
有什么区别吗?
我开始考虑的是可读性/意图。分配1给变量表明程序员希望这是一个带有数值的变量。仔细检查代码后,我会注意到它被分配给了bool(我会true在继续阅读代码之前立即将其更改为)。
在不那么简单的情况下,你会得到一个惊喜:
#include <iostream>
void foo(bool) { std::cout << "bool\n"; }
void foo(int) { std::cout << "int\n"; } // oups someone added an overload
int main() {
foo(1); // I use 1 instead of true because it's so much shorter
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
162 次 |
| 最近记录: |