В чем разница типов BOOL и bool?

97
20 августа 2019, 07:10

В чём разница типов BOOL и bool?

BOOL встречал здесь.

Даже если BOOL есть макросом определённым через typedef, какой в нём смысл? Так как функции в доках являются командами. По сути проверка идёт через true или false, прошло или не прошло.

Answer 1

BOOL - это WinAPI тип, точнее, синоним, заданный через typedef для целого:

typedef int BOOL;

Такой синоним был заведён по причине того, что WinAPI базируется на языке C, где булевского типа нет, но отражать смысл параметра или возвращаемого значения функции хотелось бы именно как булев тип. Тем не менее из-за простого использования синонима в переменную типа BOOL можно записать любое значение, подходящее для типа int.

bool - это стандартный базовый тип в языке C++ для задания булева значения. В отличие от винапишного BOOL, может содержать только два возможных варианта: true или false.

В современном C (C11) тем не менее имеется встроенный булев тип _Bool, но если хочется использовать написание как в C++, нужно включить заголовочный файл <stdbool.h>.

READ ALSO
Как можно развернуть данную рекурсию?

Как можно развернуть данную рекурсию?

Задача в том, чтобы быстро находить n-тый член последовательности Голомба

107
Как получить папку из ресурсов

Как получить папку из ресурсов

Spring Boot приложениеВызываю в нем командную строку:

120