C 語言標(biāo)準(C89) 沒有定義布爾類型,如果你使用 true 和 false,會出現(xiàn)以下錯誤:
infinite.c:5:12: error: use of undeclared identifier 'true' while (true) { 1 error generated. make: *** [infinite] Error 1
我們可以借助 C 語言的宏定義來哦設(shè)置:
//宏定義布爾類型 #define BOOL int #define TRUE 1 #define FALSE 0 //定義一個布爾變量 BOOL flag = FALSE;
也可以通過枚舉類來定義:
typedef enum { true=1, false=0 }bool;
實例
#include <stdio.h> //計算n!,n的值在main中定義 int main(void) { int n = 10; //計算疊乘數(shù) int sum = 1; //用來存放疊乘的結(jié)果 typedef enum { true=1, false=0 }bool; bool flag = false; //疊乘標(biāo)記 int num = n; //循環(huán)次數(shù) while( !flag ) { sum = sum * (num—); //當(dāng)num=1時結(jié)束循環(huán) if( num == 1) { flag = true; } } printf ("%d的疊乘值為 %d n", n, sum); return 0; }
輸出結(jié)果為:
10的疊乘值為 3628800
C99 還提供了一個頭文件 <stdbool.h> 定義了 bool 代表 _Bool,true 代表 1,false 代表 0。只要導(dǎo)入 stdbool.h ,就能非常方便的操作布爾類型了。
實例
//導(dǎo)入 stdbool.h 來使用布爾類型 #include <stdbool.h> #include <stdio.h> //計算n!,n的值在main中定義 int main(void) { int n = 10; //計算疊乘數(shù) int sum = 1; //用來存放疊乘的結(jié)果 bool flag = false; //疊乘標(biāo)記 int num = n; //循環(huán)次數(shù) while( !flag ) { sum = sum * (num—); //當(dāng)num=1時結(jié)束循環(huán) if( num == 1) { flag = true; } } printf ("%d的疊乘值為 %d n", n, sum); return 0; }
輸出結(jié)果為:
10的疊乘值為 3628800