Насколько я вижу, что существует 3 способа использовать булевские переменные в c
#define FALSE 0 ... #define TRUE !(FALSE)
есть ли другие методы, которые я пропустил? Каковы за и против различных методов?
Я предполагаю, что самым быстрым был бы номер 3, 2, более легко читаемо все еще (хотя поразрядное отрицание немного добавит к издержкам), 1 является самым читаемым не совместимый со всеми компиляторами.
Я предпочитаю использовать
#define FALSE (0!=0)
#define TRUE (0==0)
или непосредственно в коде
if (flag == (0==0)) { ... }
, компилятор будет заботиться об этом. Я использую много языков и имеющий необходимость помнить, что ЛОЖЬ 0, беспокоит меня много; но если я имею к, я обычно думаю о том строковом цикле
do { ... } while (*ptr);
, и это приводит меня видеть, что ЛОЖЬ 0