nit*_*ian 2 c++ boolean function return-value
请考虑以下C++代码段:
...
if (false == func()) // Line #1
{
...
...
}
int func()
{
...
{
...
return false;
}
...
return true;
}
Run Code Online (Sandbox Code Playgroud)
在上面的代码片段中,函数原型func()表明它返回一个整数.但是在函数内部func(),它返回false或者true.
同样在第1行中,函数的返回值func()是根据布尔值检查的.
我想知道这种用法是否有任何问题.如果有问题,建议需要进行哪些整改.
没有问题,任何非零整数转换为true,而零false.相反,一个bool可以被转换成int,用true转换为1和false到0.
比较布尔值时,您不需要如此冗长:
if (!func()) { .... }
Run Code Online (Sandbox Code Playgroud)
当然,如果函数只返回true或者false像在你的例子中一样,那么bool直接返回它是有意义的:
bool func();
Run Code Online (Sandbox Code Playgroud)