由于 C 没有布尔类型,我如何在 C 中编写这样的函数:
bool checkNumber()
{
return false;
}
该bool
类型在<stdbool.h>
标头中定义,并且在其他名称下可用_Bool
(假设您使用的是 C99 编译器)。如果你没有 C99,你总是可以像这样发明自己的 bool 类型:
typedef enum {false, true} bool;
int
在 C 中通常用作布尔值,至少在 C99 之前。零表示假,非零表示真。
如果您不使用 C99,并确定您需要添加自己的布尔类型,那么请确保您给它自己的名称。使用 'bool' 或 'BOOL' 只会在包含 3rd 方库时给您带来麻烦。唯一的例外是使用以下事实标准:
#define BOOL int
#define TRUE 1
#define FALSE 0
但请确保将它们包装在#ifndef 中。但请注意,某些库确实使用 'char' 作为 BOOL。如果您来自 C++ 背景,请考虑是否要与 C++ 进行互操作。
您可以使用定义来避免将整数和 1 和 0 直接用于布尔逻辑。
#define BOOL char
#define TRUE 1
#define FALSE 0
我选择 char 是BOOL
因为它只有 1 个字节而不是 4 个。(对于大多数系统)