找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2557|回復(fù): 8
收起左側(cè)

51單片機C語言多文件編程疑問

[復(fù)制鏈接]
ID:647261 發(fā)表于 2023-6-25 11:24 | 顯示全部樓層 |閱讀模式
剛開始學(xué)單片機編程,目前是學(xué)51的,用proteus仿真學(xué)到做萬年歷的時候,時鐘芯片+LCD1602+按鍵更改時間+溫度芯片,這樣下來,程序太長了,于是用到了多文件編程。

用多文件編程時,有些疑問,網(wǎng)上也沒有找到答案,特來求助各位大佬:
1.網(wǎng)上說的標(biāo)準(zhǔn)多文件編程,都是一個c文件配套一個h文件。
這樣的話,main文件要include一堆的h文件。那么,用一個h文件做所有c文件的聲明,main文件不就只需要include一個h文件了。
已測試了編譯通過,仿真正常。不知道這樣做會有什么缺點呢?
2.我看了公司同事的代碼,是直接把子函數(shù)寫在h文件上的,這樣看起來好像不用放一堆文件了。

不知道這種寫法是不是常用的?
回復(fù)

使用道具 舉報

ID:277550 發(fā)表于 2023-6-25 14:08 | 顯示全部樓層
2和1的后半部分,同理的。

自己寫,怎么省事、又容易維護(hù),就怎么來。

多人協(xié)作,就按標(biāo)準(zhǔn)來寫。
回復(fù)

使用道具 舉報

ID:752974 發(fā)表于 2023-6-25 15:28 | 顯示全部樓層
多文件編程的有點是便于維護(hù),更改和移植;都放在一個文件里做也是可以的,每個人的風(fēng)格不同而已。
回復(fù)

使用道具 舉報

ID:1080935 發(fā)表于 2023-6-25 15:35 | 顯示全部樓層
分不分自己定,怎么分自己定,但不是好習(xí)慣,建議按標(biāo)準(zhǔn)來,方便移植傳承。
回復(fù)

使用道具 舉報

ID:123289 發(fā)表于 2023-6-25 16:07 | 顯示全部樓層
1、每個功能需要一段程序來實現(xiàn),這是少不了的,能改變的只是這段程序放在何處。
2、將成熟的程序,做一個【標(biāo)本】,統(tǒng)一放在自己認(rèn)為合適的地方,形成一個庫,是個不錯的主意。這樣下次用到它,從【標(biāo)本】庫,調(diào)用它即可,不用再寫一遍。
同樣的道理,變量也一樣:
例如:但你認(rèn)識 P0,但KELL不認(rèn)識 P0,只認(rèn)識CPU中定義的地址 80H,你寫程序傳值32給 P0,KELL卻說錯了,我不認(rèn)識P0。
這時,就需要你事先告訴KELL,P0就是地址80H,這樣KELL才能接受P0了。
同樣還有:P1、P2、P3、TCON、TMOD……,一大堆東東。
其實,所有人都會遇到這種情況,于是早有人將 [P1、P2、P3、TCON、TMOD……] 是什么,做了個定義,并且打了個包,美其名曰:【XX.h】。
于是,用一句 include XX.h 就將這些變量,通通告知KELL平臺了。
明白這個道理,你就明白一半了。
include 可以將前人給出的,你需要用到的變量……的定義,預(yù)先告知KELL平臺,認(rèn)防KELL不認(rèn)識。
回復(fù)

使用道具 舉報

ID:647261 發(fā)表于 2023-6-25 16:25 | 顯示全部樓層
感謝以上各位
大致了解了,寫法都沒什么毛病,就是多人協(xié)作的時候可能不太好
回復(fù)

使用道具 舉報

ID:596109 發(fā)表于 2023-6-25 16:56 | 顯示全部樓層
簡單的肯定沒必要多文件,但是規(guī)模上來后,一個文件多煩,找都找不到
回復(fù)

使用道具 舉報

ID:612392 發(fā)表于 2023-6-25 18:35 | 顯示全部樓層
有一些標(biāo)準(zhǔn)化的程序,或者稱為庫,可以單獨的編在一個.h頭文件里,方便后續(xù)二次開發(fā)
回復(fù)

使用道具 舉報

ID:468209 發(fā)表于 2023-6-25 20:38 來自觸屏版 | 顯示全部樓層
多文件編寫 我就直接寫.h上  又h又c的覺得很亂
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

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