减法运算符跟恒等运算符,哪个效率更快一些呢
减法运算符和恒等运算符,哪个效率更快一些呢?for(int i 0 i 1000 i++){double dValue1 12.0doubl
减法运算符和恒等运算符,哪个效率更快一些呢?
for(int i = 0; i < 1000; i++)
{
double dValue1 = 12.0;
double dValue2 = 12.0;
if(dValue1 - dValue2 < 0)
{
//
}
if("12.0" == "12.0")
{
//
}
}
上面两个if,用哪个效率更高一点呢?求解答
[解决办法]第二个高效,它只是比较指针,没有比较字串或者double
第一个有double的运算,浮点指令效率都低
[解决办法]意思都不一样怎么比效率
[解决办法]第二个if相当于是 char* p1; 和 char* p2; 比较,实质上是两个整数的比较,很快
如果是
if(dValue1 - dValue2 < 0)
与
if(dValue1 < dValue2)
比较
则答案是,不考虑优化的话,则后者快,因为对于浮点数,前者比后者多一条指令
[解决办法] if("12.0" == "12.0")
折叠(内存中是同一个)字符串常量"12.0"的起始地址自己和自己比较!
[解决办法]字符串比较使用:
strcmp()或
stricmp()//忽略大小写