3

由于 C 没有布尔类型,我如何在 C 中编写这样的函数:

bool checkNumber()
{
   return false;
}
4

4 回答 4

17

bool类型在<stdbool.h>标头中定义,并且在其他名称下可用_Bool(假设您使用的是 C99 编译器)。如果你没有 C99,你总是可以像这样发明自己的 bool 类型:

typedef enum {false, true} bool;
于 2011-01-20T21:48:00.900 回答
9

int在 C 中通常用作布尔值,至少在 C99 之前。零表示假,非零表示真。

于 2011-01-20T21:47:56.100 回答
1

如果您不使用 C99,并确定您需要添加自己的布尔类型,那么请确保您给它自己的名称。使用 'bool' 或 'BOOL' 只会在包含 3rd 方库时给您带来麻烦。唯一的例外是使用以下事实标准:

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

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

于 2011-01-20T22:54:12.273 回答
1

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

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

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

于 2011-01-20T21:51:02.580 回答