В некотором коде, над которым я работаю, я столкнулся с странными переопределениями правды и ложности. Я видел такие вещи раньше, чтобы сделать проверки более строгими/определенными, но это немного странно в моем сознании, и мне интересно, может ли кто-нибудь сказать мне, что может быть хорошей причиной для таких определений, см. Ниже с моими комментариями рядом с ними
#define FALSE (1 != 1) // why not just define it as "false" or "0"?
#define TRUE (!FALSE) // why not just define it as "true" or "1"?
В этой базе кода есть много других странных странностей. Как и переопределения для всех стандартных типов, таких как:
#define myUInt32 unsigned integer // why not just use uint32_t from stdint?
Все эти маленькие "причуды" заставляют меня чувствовать, что я пропускаю что-то очевидное, но я действительно не вижу смысла: (
Примечание. Строго это код С++, но его можно было портировать из проекта 'c'.