我在某处读到,使用BOOL (typedef int)比使用标准的c++类型bool更好,因为BOOL的大小是4字节(即4的倍数),并且它将变量的对齐操作保存到寄存器或这些行的其他东西中……
这是真的吗?我想即使你使用bool (1字节),编译器也会填充堆栈帧以保持4的倍数对齐?
我绝对不是一个关于对齐、寄存器等底层工作原理的专家,所以如果我完全弄错了,我提前道歉。我希望被纠正。:)
干杯!
发布于 2012-05-09 16:05:25
首先,sizeof(bool)不一定是1。它是implementation-defined,允许编译器编写者自由选择适合目标平台的大小。
而且,sizeof(int)不一定是4。
有多个问题可能会影响性能:
对一段特定代码的区别只能通过分析这段代码来确定。
发布于 2012-05-11 18:21:51
关于布尔值,有三种普遍接受的性能驱动实践:
我从来没有听说过将布尔值替换为(unsigned?)然而,整数。
https://stackoverflow.com/questions/10512108
复制相似问题