在C中编写一个返回布尔值的函数

时间:2011-01-20 21:46:28

标签: c boolean stdbool

由于C没有布尔类型,如何在C:

中编写这样的函数
bool checkNumber()
{
   return false;
}

4 个答案:

答案 0 :(得分:17)

bool类型在<stdbool.h>标头中定义,并且在名称_Bool下可用(假设您使用的是C99编译器)。如果您没有C99,您可以随时创建自己的bool类型:

typedef enum {false, true} bool;

答案 1 :(得分:9)

int通常在C中用作布尔值,至少在C99之前。零表示错误,非零表示正确。

答案 2 :(得分:1)

您可以使用定义来避免直接使用整数和1和0来表示布尔逻辑。

#define BOOL char
#define TRUE 1
#define FALSE 0

我为BOOL选择了char,因为它只有1个字节而不是4个。(对于大多数系统而言)

答案 3 :(得分:1)

如果您没有使用C99,并确定需要添加自己的布尔类型,请确保为其指定自己的名称。 使用'bool'或'BOOL'只会在您加入第三方库时遇到麻烦。 唯一的例外是使用事实上的标准:

#define BOOL int
#define TRUE 1
#define FALSE 0

但请确保将它们包装在#ifndef中。但请注意,有些库确实使用'char'作为BOOL。 如果您来自C ++背景,请考虑是否要与C ++进行互操作。