将布尔变量添加到 int
Add bool variable to int
我的代码中有一个布尔函数"lookup",它有参数byte:lookup(byte(。我的变量_size是一个整数。做以下事情是好习惯吗:
_size += !lookup(byte);
我的意思是关键是布尔和 int 的隐式转换。 否则我必须做这样的事情
if (!lookup(byte)) {
_size++;
}
但我认为这会降低效率。
表达式!lookup(byte)
保证具有以下值之一,true
或false
。当用作int
时,它们分别转换为1
和0
。
所以以下 2 个片段:
_size += !lookup(byte); // true -> add 1, false -> add 0
和
if (!lookup(byte)) { // if true
_size++; // add 1
}
是等效的。 您应该选择更容易阅读和理解的那个。编译器将为两个版本生成相同的程序集,因此您不必担心效率。
效率没有区别。编译器应用优化,两者的结果可能完全相同。
如果要使转换更明确,可以使用static_cast
:
_size += static_cast<size_t>(!lookup(byte));
相关文章:
- 将布尔变量添加到 int
- 如果 x < 10,则添加前导 0 并将其存储为 int
- "Missing type specifier - int assumed"无法通过向主函数添加"return 0"来解决
- 赋值和添加运算符重载(2个表和int的串联)
- 向size_t添加 int 的正确方法
- C++在减去 int 时向 int 添加一个额外的数字
- 尝试将 char* 添加到 int 时触发编译器错误
- 当我向 vector<int *> 添加元素时,我遇到了一些问题
- 重载 + 运算符以使用 int 添加对象
- 将 int 添加到长整型
- 如果我将未签名的int添加到负int且算术结果是正面的,会发生什么
- 将字符串和 int 添加到字符串中
- 如何在 C/C++ 中将 int 添加到 char[]
- 在 c# 中将 int 添加到字符以将其 ascii 值向上移动(就像在 c++ 中一样)
- 如何在单击按钮时将字符串和int添加到QTableView
- 在c++中,如何从字符串中删除字母,并从字母中向int添加一个数字
- 将unsigned int添加到int
- 如何将C++ "int"添加到哈希集<Integer>?
- C++ 将字节值作为 int 添加到 CString
- 当我将 int 添加到字符时调用哪个运算符 + 函数('a' + 1)