gpt4 book ai didi

C++ BOOL (typedef int) vs bool 性能

转载 作者:可可西里 更新时间:2023-11-01 18:28:39 25 4
gpt4 key购买 nike

我在某处读到,使用 BOOL (typedef int) 比使用标准的 c++ 类型 bool 更好,因为 BOOL 的大小是 4 个字节(即 4 的倍数),并且它将变量的对齐操作保存到寄存器或其他东西中线...

这有什么道理吗?我想即使您使用 bool(1 字节),编译器也会填充堆栈帧以保持 4 的倍数对齐?

我绝不是对齐、寄存器等基础工作方面的专家,所以如果我完全错了,我提前道歉。希望指正。 :)

干杯!

最佳答案

首先,sizeof(bool)不一定是1。是implementation-defined ,让编译器编写者可以自由选择适合目标平台的大小。

此外,sizeof(int) 不一定是 4

有多个问题可能会影响性能:

  • 对齐;
  • 内存带宽;
  • CPU 有效加载比机器字窄的值的能力。

只有分析该段代码才能确定对特定代码段产生的差异(如果有的话)。

关于C++ BOOL (typedef int) vs bool 性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10512108/

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