在C语言中,表示真和假的最好方法是什么?
在c语言中,任何等于零的东西都被认为是假,任何等于非零值的东西都被认为是真,因此,最常见的定义就是假为O,真为1。许多程序中都包含了具有如下定义的头文件:
#define FALSE O
#define TRUE 1
如果你在编写Windows程序,你应该注意头文件windows.h中的TRUE和FALSE的确切定义。上述真和假的定义方式非常普遍,并且是完全可以接受的,然而,还有其它几种定义方式,请看下例:
#define FALSE 0
#define TRUE !FALSE
上例把FALSE定义为0,把TRUE定义为非零值。注意,即使是负数,如-1,也是非零值,因此也被认为是真。
另一种定义方式是建立自己的枚举类型,如Boolean(或者BOOL),如下所示:
enurn BOOL{
FALSE,
TRUE
};
正象你所可能已经知道的那样,在缺省情况下,枚举类型的第一个元素被赋值为O,因此,在上述枚举定义中,FALSE被赋值为0,TRUE被赋值为1。与使用符号常量相比,使用枚举类型有它的一些好处,详见5.6和5.7中的有关内容。
哪种方法最好呢?这个问题没有一个唯一的答案。如果你在编写一个Windows程序,那么TRUE和FALSE都是已经为定义好的,你没有必要再建立自己的定义,在其它情况下,你可以从前文所介绍的几种方法中选择一种。
#define FALSE O
#define TRUE 1
如果你在编写Windows程序,你应该注意头文件windows.h中的TRUE和FALSE的确切定义。上述真和假的定义方式非常普遍,并且是完全可以接受的,然而,还有其它几种定义方式,请看下例:
#define FALSE 0
#define TRUE !FALSE
上例把FALSE定义为0,把TRUE定义为非零值。注意,即使是负数,如-1,也是非零值,因此也被认为是真。
另一种定义方式是建立自己的枚举类型,如Boolean(或者BOOL),如下所示:
enurn BOOL{
FALSE,
TRUE
};
正象你所可能已经知道的那样,在缺省情况下,枚举类型的第一个元素被赋值为O,因此,在上述枚举定义中,FALSE被赋值为0,TRUE被赋值为1。与使用符号常量相比,使用枚举类型有它的一些好处,详见5.6和5.7中的有关内容。
哪种方法最好呢?这个问题没有一个唯一的答案。如果你在编写一个Windows程序,那么TRUE和FALSE都是已经为定义好的,你没有必要再建立自己的定义,在其它情况下,你可以从前文所介绍的几种方法中选择一种。