- 打卡等级:初来乍到
- 打卡总天数:5
- 最近打卡:2025-04-30 07:46:22
荣誉版主
- 积分
- 2319
|
发表于 2024-4-19 07:56:29
|
显示全部楼层
本帖最后由 tzz1983 于 2024-4-19 09:48 编辑
是的, 上面的红字是我回复的, 可那又怎么样呢,
这只能说明我不太在意这种旁支末节, 我一点都没感觉到丢脸
像这种情况很多,比如:
例1: u8 cnt; if(cnt){......} => if(cnt!=0){......}
例2: u8 cnt; cnt++; if(cnt){......} => if(++cnt){......}
这样的语句, 执行结果是一样的, 语法也没毛病. 但是编译出来汇编代码会不一样!
谁又会去在意哪条语句的效率更高? 谁又会去说前者是错的还是后者是错的?
对于我来说,通篇回复,最抢眼的莫过于,这一句:
是因为我挑了您的刺, 让您不爽了, 然后回头来挑我的刺吧.
可您这刺挑的不痛不痒.
言归正传, P21=~P21; 效率确实是高一些, 该承认的还是得承认, 受教了!
但从另一个角度来说, 使用者C语法和逻辑都没有问题, 结果也是正确的,
严格来说, 这是编译器优化的问题, 不是使用者的问题.
贴帖也说明了C251有这个问题, 而C51就没有!
再者, 看问题的态度:
我认为正常的程序员不要刻意去追求这种"旁支末节"的优化, 没有多少意义,
关键系统代码, 可以用汇编优化, 但这部分很少.
不是关系到系统关键性能的代码, 没有必要去关心反汇编,
把精力放在代码结构和大逻辑层面上来, 收益或许会高一点.
|
1
喜欢他/她就送朵鲜花吧,赠人玫瑰,手有余香!
-
+1
楼主威武~
|