首页 后端开发 C++ C 和 C 语言中布尔到整数转换的可移植性如何?

C 和 C 语言中布尔到整数转换的可移植性如何?

Dec 05, 2024 am 01:09 AM

How Portable is Boolean to Integer Conversion in C and C  ?

bool 到 int 转换:深入探讨其可移植性

原始问题:

bool 值转换为 int 的可移植性如何?我们能否确定以下断言在所有系统上都通过?

int x = 4 < 5;
assert(x == 1);

x = 4 > 5;
assert(x == 0);
登录后复制

答案:

是的,bool 到 int 的转换是完全可移植的并且符合都是C和C

解释:

在 C 中,从 bool 到 int 的转换是隐式的,如 C 标准中所指定的(C 11 或 C 标准中的第 4.7/4 节或14 标准、C 17 标准的§7.8/4、20 标准的§7.3.9/2)。根据这些标准:

  • False 转换为 0。
  • True 转换为 1。

在我们的示例中:

int x = 4 < 5;
登录后复制

准确翻译为:

int x = true;
登录后复制

因为 true 已转换对于一,断言就会通过。同样,在第二个断言中, false 被转换为零,从而断言成功。

C 的附加信息:

在 C99 之前,C 没有布尔类型。但是,C99 引入了 _Bool 类型和扩展为 _Bool 的宏 bool(在 stdbool.h 头文件中定义)。宏 true 和 false 也在同一个头文件中定义,其中 true 扩展为整数常量 1,false 扩展为整数常量 0。

根据 C99 的 §7.16:

#define bool _Bool
#define true 1
#define false 0
登录后复制

因此,C99 及更高版本中的 bool 到 int 转换的行为与 C 类似。

以上是C 和 C 语言中布尔到整数转换的可移植性如何?的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门文章

仓库:如何复兴队友
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
两个点博物馆:所有展览以及在哪里可以找到它们
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热门文章

仓库:如何复兴队友
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
两个点博物馆:所有展览以及在哪里可以找到它们
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热门文章标签

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

c语言函数格式字母大小写转换步骤 c语言函数格式字母大小写转换步骤 Mar 03, 2025 pm 05:53 PM

c语言函数格式字母大小写转换步骤

Gulc:从头开始建造的C库 Gulc:从头开始建造的C库 Mar 03, 2025 pm 05:46 PM

Gulc:从头开始建造的C库

c语言函数返回值的类型有哪些?返回值是由什么决定的? c语言函数返回值的类型有哪些?返回值是由什么决定的? Mar 03, 2025 pm 05:52 PM

c语言函数返回值的类型有哪些?返回值是由什么决定的?

C标准模板库(STL)如何工作? C标准模板库(STL)如何工作? Mar 12, 2025 pm 04:50 PM

C标准模板库(STL)如何工作?

c语言函数的定义和调用规则是什么 c语言函数的定义和调用规则是什么 Mar 03, 2025 pm 05:53 PM

c语言函数的定义和调用规则是什么

c语言函数返回值在内存保存在哪里? c语言函数返回值在内存保存在哪里? Mar 03, 2025 pm 05:51 PM

c语言函数返回值在内存保存在哪里?

distinct用法和短语分享 distinct用法和短语分享 Mar 03, 2025 pm 05:51 PM

distinct用法和短语分享

如何有效地使用STL(排序,查找,转换等)的算法? 如何有效地使用STL(排序,查找,转换等)的算法? Mar 12, 2025 pm 04:52 PM

如何有效地使用STL(排序,查找,转换等)的算法?

See all articles