使用 define
所有版本的 C,将有效地将 0
以外的任何整数值视为 true
作为比较运算符,将整数值 0
视为 false
。如果从 C99 开始没有 _Bool
或 bool
,你可以使用 #define
宏在 C 中模拟布尔数据类型,你仍然可以在遗留代码中找到这样的东西。
#include <stdio.h>
#define bool int
#define true 1
#define false 0
int main(void) {
bool x = true; /* Equivalent to int x = 1; */
bool y = false; /* Equivalent to int y = 0; */
if (x) /* Functionally equivalent to if (x != 0) or if (x != false) */
{
puts("This will print!");
}
if (!y) /* Functionally equivalent to if (y == 0) or if (y == false) */
{
puts("This will also print!");
}
}
不要在新代码中引入它,因为这些宏的定义可能会与 <stdbool.h>
的现代用法发生冲突。