const 与 常量数值 谁的 效率更高?
程序循环 上千万次,
每行都用到 常量0X FF000000;
需不需要设置 一个 const t = 0X FF000000 ?
究竟 谁的效率 更好呢?
其实是想把它 放在 寄存器里,可是怎么让 编译器 强制放在 寄存器里面呢?
[解决办法]
你看过编译后的代码么?
编译器会优化的
[解决办法]
“程序循环 上千万次,每行都用到 常量0X FF000000;
需不需要设置 一个 const t = 0X FF000000 ?”
常量是给人看的,不是给机器看的,机器最后自己会优化,和直接写没有区别
“其实是想把它 放在 寄存器里,可是怎么让 编译器 强制放在 寄存器里面呢?”
不能强制要求编译器,编译器会自动决定,当一个量的使用频率很高时编译器会自动优化使用寄存器
何况常量不比进寄存器
如eax = eax+FF00(常量)
汇编add eax,FF00
何必要入寄存器呢?
[解决办法]
直接常量 从编译到 最后会快点, 编译后的程序 肯能被优化性能可能一样, 使用const写 程序易读。
[解决办法]
一般编译器看到const的时候就优化成常量, 不是你说的寄存器不寄存器的.
你可以通过声明一个const值, 然后想办法修改它的值. 再在Debug模式下查看它的值, 会发现一些很有意思的事情.
[解决办法]
register DWORD t = 0X FF000000;