Jaa


Почему в Win32 тип BOOL определен как signed int, а не как unsigned int?

Игорь Левицки хочет, чтобы кто-нибудь из Microsoft объяснил, почему тип BOOL определен как signed int (целое со знаком), а не как unsigned int (целое без знака).

Для того чтобы разобраться в этом, вам не обязательно работать в Microsoft. Вся нужная информация находится в открытом доступе.

Цитируя классическое издание Брайана Кернигана и Денниса Ритчи (K&R), которое являлось описанием действующего стандарта языка C во времена разработки Windows:

7.6 Операторы отношения

Все операторы [отношения] возвращают 0, если указанное отношение ложно, и 1 — если оно истинно. Получаемый результат имеет тип int.

Win32 определяет BOOL в качестве синонима типу int, потому что так сказали Брайан и Деннис. Если вы хотите знать, почему Брайан и Деннис решили, что возвращаемый тип должен быть целым со знаком вместо целого без знака, вам придется спросить это у них.