0
我正在查看一些代碼,並且我看到一個bool函數,它定義了一個帶有十六進制值的int並將其返回。這是它的外觀:C++ Bool返回十六進制詮釋?
bool AttachProcess()
{
int a = 0x40;
...
return a;
}
不是一個布爾只返回真的假?或0或1?這個函數不會給出錯誤或警告,所以我必須錯過一些東西。有人可以解釋嗎?謝謝!
我正在查看一些代碼,並且我看到一個bool函數,它定義了一個帶有十六進制值的int並將其返回。這是它的外觀:C++ Bool返回十六進制詮釋?
bool AttachProcess()
{
int a = 0x40;
...
return a;
}
不是一個布爾只返回真的假?或0或1?這個函數不會給出錯誤或警告,所以我必須錯過一些東西。有人可以解釋嗎?謝謝!
在C++中的零被認爲是假的,一切非零是真實的。在你的情況下,存在從整數到布爾值的隱式轉換。
true
和false
是非零和零。所以: -
return a;
是
return a != 0;
好的,這是有道理的。謝謝。 –