2015-11-21 88 views
0

我正在查看一些代碼,並且我看到一個bool函數,它定義了一個帶有十六進制值的int並將其返回。這是它的外觀:C++ Bool返回十六進制詮釋?

bool AttachProcess() 
{ 
    int a = 0x40; 
    ... 
    return a; 
} 

不是一個布爾只返回真的假?或0或1?這個函數不會給出錯誤或警告,所以我必須錯過一些東西。有人可以解釋嗎?謝謝!

回答

1

在C++中的零被認爲是假的,一切非零是真實的。在你的情況下,存在從整數到布爾值的隱式轉換。

+0

好的,這是有道理的。謝謝。 –

1

truefalse是非零和零。所以: -

return a; 

return a != 0;