gpt4 book ai didi

c - Boolean - 优化 boolean 值

转载 作者:行者123 更新时间:2023-11-30 17:54:30 25 4
gpt4 key购买 nike

传统上,C 直到 C99 才定义 boolean 值。因此,搜索头文件以了解创建 boolean 值的优化方法是:

Windows.h [Microsoft C++]
---------
typedef int BOOL;

//false
#ifndef FALSE
#define FALSE 0
#endif

//true
#ifndef TRUE
#define TRUE 1
#endif

在Tipo Booleano C中定义

#if (__BORLANDC__ <= 0x460) || !defined(__cplusplus)
typedef enum { false, true } bool;
#endif

由 c-faq.com 第 9 部分提供

typedef enum {false, true} bool;

在 objc.h 中 bool 定义为:

typedef signed char     BOOL; 
// BOOL is explicitly signed so @encode(BOOL) == "c" rather than "C"
// even if -funsigned-char is used.
#define OBJC_BOOL_DEFINED

#define YES (BOOL)1
#define NO (BOOL)0

回答 stackoverflow.com 上的一些问题

typedef enum { False = 0, True = 1 } Bool;
#define bool Bool
#define true True
#define false False

哪一种是优化的方式?

最佳答案

如果您使用 C89,我会采用以下定义:

#define true 1
#define false 0
typedef unsigned char bool;

出于内存原因,_Bool 通常是 1 字节宽的类型。在 C99 中 _Bool 是无符号类型。

我个人不喜欢将 bool 定义为枚举,因为枚举是实现定义的类型,而枚举常量始终是 int

现在,如果您想优先考虑速度而不是内存,则应该考虑使用与处理器的字大小相匹配的类型。

关于c - Boolean - 优化 boolean 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14909774/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com