почему BOOLEAN из winapi использует 1 для true и 2 для false - PullRequest
1 голос
/ 02 октября 2011

Я не знал. только что видел это в моем окне отладки, BOOLEAN из STORAGE_DEVICE_DESCRIPTOR разрешается в 2 вместо 1. Я запаниковал, думая, что 2 означает ложь тогда я понял, что 1 за правду. Но почему такой странный дизайн? Или я что-то не так делаю на своей стороне? никогда не слышал ничего подобного многобайтовому логическому. (Кстати, я использую MinGW и отладчик Qt Creator IDE)

1 Ответ

0 голосов
/ 03 октября 2011

Существуют исторические причины, по которым существует много типов логических выражений, которые обсуждаются здесь . По существу, любые ненулевые значения являются истинными, а ноль - ложными. Это означает, что вы не должны делать сравнения следующим образом:

if( x == TRUE )

Но вместо этого:

if( x )
...