dd 0 = FALSE 1 = TRUE
Это сишный int, 4 байта скорее всего
Ну да
Т.е. там cmp reg, 1 ??
Может там всё таки False = 0 True ≠ 0 ?
Это для оптимизации - можно только проверить на 0, а остальные = TRUE Но так же можно и: True = 1 False ≠ 1 Это теперь означает, что False это не 0?
Так как там проверка происходит?
Я откуда знаю? Как захотели - так и происходит
Тогда откуда ты знаешь что TRUE это именно 1?
Потому что том же MSDN, где написано про эту функцию, есть и страница про BOOL (https://docs.microsoft.com/en-us/cpp/cpp/bool-cpp) И там написано что BOOL = True или False А True это 1, False = 0
Т.е. если в TRUE загнать 2, то это будет FALSE?
Потому что в винапи так задефайнено
2 в BOOL нет, есть 1, или 0
всегда думал что 0 - ложь, все что не ноль - правда
таков вроде итог был в сишном чате о разговоре что есть bool
Об этом можно бесконечно спорить, но с самого начала, было так - 0, 1 С времён первых компьютеров
Сишный бул и бул из винапи разные вещи
Bool это int, если я правильно помню
Неправильно, это байт. Обсуждали уже выше
+
Неа, это инт, смотри ссылку выше
...
разобрался вроде
Ну и зачем для 0, или 1 выделять 4 байта? Что за бред.. Вот как в Object C выделен BOOL: typedef signed char BOOL; И в Си так же: Altogether, BOOL comprises a type definition (typedef signed char BOOL) and the macros YES and NO https://nshipster.com/bool/ https://stackoverflow.com/questions/9521140/char-or-int-for-boolean-value-in-c https://www.austincc.edu/akochis/cosc1320/dataTypes https://bytes.com/topic/c/answers/676698-char-bool Это байт.
При чем тут библиотека си, когда речь о виндовых типах?
Начнём с того, что причём тут вообще Си или Windows типы данных, если bool - везде 1 байт
Покажи чему у тебя равно sizeof(BOOL) если подключить minwindef.h
Там он определён как int bool = 1 байт (char)
int - не байт. short short int - байт
short short int не существует
Осталось понять где ты видишь char в строке typedef int BOOL
Нет, осталось понять, где ты видишь, что bool = int
unsigned char
Но bool тогда signed
он про вин32 бул
нет
Херню сказал, да. Char - байт, int - как минимум два байта (меньше я не видел)
это замена byte
На скриншоте выше и по ссылке выше что я кидал. Только не bool, а BOOL, это разные сущности
это замена byte
Это не разные "сущности", это лишь define в int, для удобства WinAPI, ничего тут разного нет
Ты пишешь = Bool (ну тогда bool) это 1 байт, это не int, а char Это ты определись
Потому что тут ты назвал BOOL байтом
меньше, емнип нельзя
Обсуждают сегодня