在此之前的C语言中,使用整型int来表示真假。在输入时:使用非零值表示真;零值表示假。在输出时:真的结果是1,假的结果是0;(这里我所说的“输入”,意思是:当在一个需要布尔值的地方,也就是其它类型转化为布尔类型时,比如 if 条件判断中的的条件;“输出”的意思是:程序的逻辑表达式返回的结果,也就是布尔类型转化为其他类型时,比如 a==b的返回结果,只有0和1两种可能)。
所以,现在只要你的编译器支持C99,你就可以直接使用布尔型了。另外,C99为了让C和C++兼容,增加了一个头文件stdbool.h。里面定义了bool、true、false,让我们可以像C++一样的定义布尔类型。
1. 我们自己定义的“仿布尔型”
在C99标准被支持之前,我们常常自己模仿定义布尔型,方式有很多种,常见的有下面两种:
-
/* 第一种方法 */
-
#define TRUE 1
-
#define FALSE 0
-
-
-
/* 第二种方法 */
-
enum bool{false, true}
2.使用stdbool.h
在C++中,通过bool来定义布尔变量,通过true和false对布尔变量进行赋值。C99为了让我们能够写出与C++兼容的代码,添加了一个头文件<stdbool.h>。
-
/* Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
-
This file is part of GCC.
-
*/
-
-
#ifndef _STDBOOL_H
-
#define _STDBOOL_H
-
-
#ifndef __cplusplus
-
-
#define bool _Bool
-
#define true 1
-
#define false 0
-
-
#else /* __cplusplus ,应用于C++里,这里不用处理它*/
-
-
/* 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 */
下面是一个例子程序:
-
#include <stdio.h>
-
#include <stdlib.h>
-
#include <stdbool.h>
-
-
int main()
-
{
-
bool m = true;
-
bool n = false;
-
-
printf("m==%d, n==%d\n",m,n);
-
exit(0);
-
}
执行结果为:
http://http://blog.csdn.net/daheiantian/article/details/6241893
阅读(11934) | 评论(0) | 转发(0) |