首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么使用<stdbool.h>而不是_Bool?

为什么使用<stdbool.h>而不是_Bool?
EN

Stack Overflow用户
提问于 2017-11-19 06:43:30
回答 2查看 7.2K关注 0票数 10

每当我需要布尔类型时,就会被告知要么创建一个,要么更好地使用stdbool.h

既然stdbool.h使用typedef bool _Bool,那么是否有理由使用标头而只使用_Bool类型?它仅仅用于附加宏(/* #define true 1 #define false 0 */)吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-11-19 06:53:35

添加到语言中的明显类型是bool。但不幸的是,大量的代码都包含了其他形状和形式的bool。回想一下,只在C99中添加了对布尔类型的支持。

因此,C语言委员会别无选择,只能为它提取一个保留标识符(_Bool)。但是,由于类型名称的明显选择仍然相同,因此添加了stdbool.h以允许用户使用明显的名称。这样,如果您的代码没有自制的bool,您可以使用内置的一个。

因此,如果您没有绑定到一些现有的家庭酿造的stdbool.h,那么确实要使用bool。它将是标准类型,它带来的所有好处,类型。

票数 11
EN

Stack Overflow用户

发布于 2017-11-19 06:53:25

通常的做法一直是使用bool,但是当这种类型正式引入到C99的标准中时,他们不想破坏“滚动自己”的实现。所以他们把_Bool类型作为非官方的bool的一种攻击,现在没有类型名称的冲突。无论如何,要点是,除非遗留代码中断,否则使用bool

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47374356

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档