boolean in C

在 C 裡面並沒有 boolean 這種型態的變數
而是使用整數型態來代替
因此常常我們會看到
#define TRUE 1
#define FALSE 0
但是
true 真的是 1 嗎? 那麼 -1 會不會比 1 來個更好,因為所有的 bit 都是 1?
而 false 真的是 0 嗎??
前幾天在看某個程式的 Source code 的時候
我發現它是這樣子定義的
#define TRUE (1==1)
#define FALSE (0==1)
真的很聰明~~
簡單的說
(1==1) 一定是真~~
(0==1) 一定是假~~
compiler 會自己去求出 (1==1) 跟 (0==1) 的值
這樣子就不用我們自己去定義一個特定的數值
將來轉換平台或環境的時候
可以減少轉換的阻礙~~
很簡單的方式,完全讓編譯器去決定 TRUE 跟 FALSE 的值~