C++ BOOL(typedef int)vs bool表现

Kar*_*son 7 c++ performance boolean typedef

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

有没有道理呢?我想编译器会填充堆栈帧,以便即使你使用bool(1字节)也能保持多个4的对齐?

我绝不是对齐,寄存器等基础工作的专家,所以如果我完全错了,我会提前道歉.我希望得到纠正.:)

干杯!

NPE*_*NPE 7

首先,sizeof(bool)不一定1.它是实现定义的,使编译器编写者可以自由选择适合目标平台的大小.

而且,sizeof(int)不一定4.

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

  • 对准;
  • 内存带宽;
  • CPU能够有效地加载比机器字窄的值.

什么 - 如果有的话 - 对特定代码片段的差异只能通过分析那段代码来建立.