脚踏实地
全部博文(230)
分类: C/C++
2009-10-04 17:32:50
1 C中没有bool的问题
_Bool 型是 C99 添加的,用于表示布尔值,亦即是表示逻辑真(true)和逻辑假(false)。因为 C 用 1 表示 true ,0 表示 false ,所以 _Bool 实际上是整数类型。理论上 _Bool 只需要 1 bit 存储单元,因为1 bit 就足以表示 0 和 1 。事实上,_Bool 是无符号整型,一般占用 1 字节。例如:
_Bool flag = 1;
flag = 0;
包含标准头文件 stdbool.h (要自己添加,麻烦)后,我们可以用 bool 代替 _Bool ,true 代替 1 ,false 代替 0 。例如:
bool flag = true;
flag = false;
这么做是为了和 C++ 兼容。
注意:stdbool.h 是 C99 添加的。
=================stdbool.h=========
stdbool.h -- Boolean type and values
(substitute for missing C99 standard header)
public-domain implementation from [EMAIL PROTECTED]
implements subclause 7.16 of ISO/IEC 9899:1999 (E)
*/
#ifndef __bool_true_false_are_defined
#define __bool_true_false_are_defined 1
#undef bool
#undef true
#undef false
#if __STDC_VERSION__ < 199901
typedef int _Bool
#endif
========================================================