首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

const 与 常量数值 哪位高手的 效率更高

2012-04-07 
const与常量数值谁的 效率更高?程序循环上千万次,每行都用到常量0XFF000000需不需要设置一个constt0XFF0

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;

热点排行