找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5071|回復(fù): 11
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)C語言的誤區(qū)

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:1043948 發(fā)表于 2022-9-8 17:46 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
經(jīng)常見網(wǎng)友們說,代碼不能寫太多了包括注釋,單片機(jī)的ROM只有幾個(gè)K的空間,其實(shí)這是表面問題的誤解。
1、注釋是寫不進(jìn)去hex文件的,下載到芯片里的只有你的有效代碼匯編以后生成的機(jī)器碼,注釋自動(dòng)編譯器忽視了,否則怎么是注釋呢?
2、for循環(huán)和蝸牛代碼意義一樣,for循環(huán)匯編以后和和你不用for循環(huán)把代碼用笨辦法依次寫出來效果一樣,不妨試試,弄個(gè)for循環(huán)依次點(diǎn)亮8棧led燈,然后再用笨辦法寫8行代碼,依次點(diǎn)亮8棧led燈,比較一下下載燒錄以后的hex文件大小
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:496636 發(fā)表于 2022-9-9 06:59 | 只看該作者
注釋不會(huì)生產(chǎn)目標(biāo)代碼,有點(diǎn)單片機(jī)基礎(chǔ)知識(shí)的人都知道,用FOR循環(huán)寫代碼可以節(jié)省單片機(jī)的存儲(chǔ)空間,只是你代碼量小不會(huì)顯現(xiàn)出來而已。因?yàn)橛醚h(huán)語句需要耗費(fèi)一定的存貯空間來存貯牲循環(huán)變量,還有判斷,控制程序執(zhí)行順序都要存貯空間來支持。
就像你用指針,如果對于簡單的程序,用上指針更不方便,不如不用指針,但問題一復(fù)雜,用上指針那是效率大增。
回復(fù)

使用道具 舉報(bào)

板凳
ID:275671 發(fā)表于 2022-9-9 08:08 | 只看該作者
不用for循環(huán)真的能提速
注釋不會(huì)生產(chǎn)目標(biāo)代碼, 但是好多人工作中不寫注釋,不要問我為什么
回復(fù)

使用道具 舉報(bào)

地板
ID:624769 發(fā)表于 2022-9-9 20:38 | 只看該作者
就你的 第二點(diǎn)來講,你依次點(diǎn)亮8個(gè)燈時(shí) 加個(gè) delay 看看,  不要以片蓋面, 次數(shù)不多的循環(huán)一個(gè)指令時(shí)候,for的優(yōu)勢 的確不明顯,但是 50次,100次呢? 循環(huán)的指令有 20條以上呢? 這代碼差距就大了去了。當(dāng)然,如果純粹追求效率,自然應(yīng)該 避免使用所有的for循環(huán)。但是為了追求體積,就應(yīng)當(dāng)盡量使用for循環(huán)
回復(fù)

使用道具 舉報(bào)

5#
ID:1007932 發(fā)表于 2022-9-10 09:23 | 只看該作者
1.注釋聽名字多數(shù)不學(xué)編程的人也知道
回復(fù)

使用道具 舉報(bào)

6#
ID:1044475 發(fā)表于 2022-9-11 18:33 | 只看該作者
和變量名 函數(shù)名 參數(shù)名 字符長短也無關(guān)
回復(fù)

使用道具 舉報(bào)

7#
ID:1044757 發(fā)表于 2022-10-31 20:32 | 只看該作者
不寫注釋是留給公司的,自己的那一份是一定要有注釋的。
回復(fù)

使用道具 舉報(bào)

8#
ID:1054812 發(fā)表于 2022-11-30 12:36 | 只看該作者
ypfengye 發(fā)表于 2022-10-31 20:32
不寫注釋是留給公司的,自己的那一份是一定要有注釋的。

哈哈 算你狠
回復(fù)

使用道具 舉報(bào)

9#
ID:77589 發(fā)表于 2022-12-8 17:01 | 只看該作者
樓主還有待學(xué)習(xí)啊。。。。。。!
回復(fù)

使用道具 舉報(bào)

10#
ID:1129328 發(fā)表于 2024-7-20 14:07 | 只看該作者
注釋不影響代碼大小:
注釋在編譯過程中被完全忽略,不會(huì)出現(xiàn)在最終的二進(jìn)制代碼(如.hex文件)中。因此,它們不會(huì)占用任何ROM空間。注釋的存在主要是為了提高源代碼的可讀性和可維護(hù)性,方便人類理解代碼邏輯。
代碼結(jié)構(gòu)與優(yōu)化:
使用高級語言結(jié)構(gòu),如for循環(huán),與使用冗長的、重復(fù)的代碼片段在功能上是等價(jià)的,但它們在編譯后的機(jī)器碼中可能有相同或相似的表現(xiàn)形式,F(xiàn)代編譯器能夠優(yōu)化這些結(jié)構(gòu),使得循環(huán)和手動(dòng)重復(fù)的代碼在最終的機(jī)器碼中占用相似的空間。然而,使用循環(huán)通常會(huì)使得代碼更加簡潔且易于維護(hù)。
代碼效率與ROM使用:
單片機(jī)的ROM空間有限,因此編寫高效、緊湊的代碼非常重要。但這并不意味著避免使用諸如for循環(huán)這樣的結(jié)構(gòu)。實(shí)際上,有效的算法設(shè)計(jì)、合理的數(shù)據(jù)類型選擇、避免不必要的函數(shù)調(diào)用和全局變量的使用,這些都是減少ROM占用的關(guān)鍵因素。
回復(fù)

使用道具 舉報(bào)

11#
ID:1131387 發(fā)表于 2024-9-30 09:55 | 只看該作者
一邊編程,一邊注釋會(huì)不會(huì)很慢?如果是新人學(xué)習(xí)這樣還好,但對于經(jīng)常搞這個(gè)的,注釋還有必要嗎?
回復(fù)

使用道具 舉報(bào)

12#
ID:23640 發(fā)表于 2024-9-30 11:08 | 只看該作者
easymfk 發(fā)表于 2024-9-30 09:55
一邊編程,一邊注釋會(huì)不會(huì)很慢?如果是新人學(xué)習(xí)這樣還好,但對于經(jīng)常搞這個(gè)的,注釋還有必要嗎?

沒有注釋不利于代碼維護(hù),尤其是換了人
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表