typedef int BOOL; #define TRUE 1 #define FALSE 0
/* 第二種方法 */ html
enum bool{false, true};
b. 使用 C99 新增的關鍵字 _Bool linux
C99 新增關鍵字 _Bool 類型的長度爲 1,只能取值爲 0 或 1 。將任意非零值賦值給 _Bool 類型變量,都會先轉換爲 1,表示爲真。將零值賦值給 _Bool 類型,結果爲 0,表示爲假。[root@Betty ~]# vi /usr/lib/syslinux/com32/include/stdbool.h /* * $Id: stdbool.h,v 1.1 2003/04/16 06:32:31 hpa Exp $ * * stdbool.h */ #ifndef _STDBOOL_H #define _STDBOOL_H #ifndef __cplusplus #if !defined(__STDC_VERSION__) || (__STDC_VERSION__ < 199901L) # if !defined(__GNUC__) ||(__GNUC__ < 3) typedef char _Bool; /* For C compilers without _Bool */ # endif #endif #define bool _Bool #define true 1 #define false 0 #else /* C++ */ #define bool bool #define true true #define false false #endif #define __bool_true_false_are_defined 1 #endif /* _STDBOOL_H */
2. GCC 定義 redis
[root@Betty ~]# vi /usr/lib/gcc/x86_64-redhat-linux/4.1.1/include/stdbool.h /* Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc. This file is part of GCC. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. GCC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GCC; see the file COPYING. If not, write to the Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ /* As a special exception, if you include this header file into source files compiled by GCC, this header file does not by itself cause the resulting executable to be covered by the GNU General Public License. This exception does not however invalidate any other reasons why the executable file might be covered by the GNU General Public License. */ /* * ISO C Standard: 7.16 Boolean type and values <stdbool.h> */ #ifndef _STDBOOL_H #define _STDBOOL_H #ifndef __cplusplus #define bool _Bool #define true 1 #define false 0 #else /* __cplusplus */ /* Supporting <stdbool.h> in C++ is a GCC extension. */ #define _Bool bool #define bool bool #define false false #define true true #endif /* __cplusplus */ /* Signal that all the definitions are present. */ #define __bool_true_false_are_defined 1 #endif /* stdbool.h */
其實這兩個頭文件的定義自己還隱形的說明了一些信息,閱者自斟。 this
參考文章: