Вход
Наше всё
Теги
codebook
无线电组件
Поиск
Опросы
Закон
Пятница
9 мая
О смысле всего сущего
0xFF
Средства и методы разработки
Мобильная и беспроводная связь
Блошиный рынок
Объявления
Микроконтроллеры
PLD, FPGA, DSP
AVR
PIC
ARM, RISC-V
Технологии
Кибернетика, автоматика, протоколы
Схемы, платы, компоненты
Средства и методы разработки
1088516
Топик полностью
IBAH
(25.03.2021 14:46, просмотров: 202)
ответил
Vit
на
Keil для Cortex-m, к сожалению, умеет (умел?) при оптимизации сделать возврат чего-попало из функции. Пару раз попадал. Потому придерживаюсь правила - под if проверка только на false и никогда на ==true.
Я догадываюсь откуда ноги растут. Изначально было "истина все кроме нуля", и каждый трактовал истину как хотел, в 99г. решили окончательно избавится от многозначительности #define TRUE 1 #define FALSE 0
https://stackoverflow.com/questions/2254075/using-true-and-false-in-c
https://stackoverflow.com/a/11812846
Ответить
Наложение битовой маски, например, может дать не 0 и не 1. "if ((var & (1 << 2)) == 1) this_is_stupid();" Более глубоких причин я бы не искал, ибо их там нет, инфа 146%.
-
SciFi
(25.03.2021 14:54
)