好吧,我明白外部定義是如何工作的,但我不知道什麼是放置它們的「最佳」地方。請看下面的文件結構:C + extern聲明 - 把它們放在哪裏
- 的main.c/main.h/global.h
- drv_adc.c/drv_adc.h
- drv_pwm.c/drv_pwm.h
你可能會猜測,這對於一個小型微控制器來說非常普遍。這兩個驅動程序在硬件的不同部分上工作,並且沒有相互依賴關係。兩個驅動程序都可以設置一個標誌(例如:adc_irq_occured,pwm_irq_occured),它表示發生了什麼事情,哪些會在main.c中處理。
現在我可以想到兩種方法,我會把「extern bool adc_irq_occured;」旗。
- 的drv_adc.h:它有點屬於ADC驅動器,所以我可以將其添加到它的頭文件,並在main.c中對其進行實例化
- 我打開邏輯並將extern聲明放入我的main.h(或global.h,如果必須如此)並在我的drv_adc.c中實例化它。
現在的問題:哪個選項是首選的選項?有沒有我可以閱讀這些主題的好書?
爲什麼不這樣做呢? – 2013-03-08 14:45:52
@TomL。 ,已編輯我的帖子,以消除我給你的其他荒謬建議,也包括了對你的評論的回答 – 2013-03-08 15:52:48
是的,這是故事的一點。然而,想象一下:駕駛員彼此獨立,彼此不需要了解對方。我只想讓「main.c」知道他們兩個,但不是彼此之間。那麼,其他方式是不是更有意義(因爲它將範圍限制得更多一些?) – 2013-03-08 16:17:09