應用場景舉例:N1-N10 一共10個 .c檔案,其中N1.h中的結構體Time_Struct定義為:
[code] typedef struct
{
int Hour;
int minute;
char second;
}
TimeTypedef;[/code]
N1.c中定義了變數TimeStruct;
N2.C中需要讀TimeStruct. Hour的值。
N3.C中需要對TimeStruct. minute加(防止超范圍肯定先讀)。
N4.C中需要對TimeStruct. minute減(防止超范圍肯定先讀)。
對于這個變數的處理辦法我能想的處理辦法如下:
(1) 用extern方式 全域變滿天飛,耦合性太強,后面升級維護麻煩。主要是牽一發而動全身,不建議用。
(2)寫成函式,通過傳參來賦值或者讀取,耦合性可以有效避免,但是如果程式一復雜,專案中會有超多函式,很多函式建立的目的就是為了傳參的。
(3)在要用到TimeStruct的非N1的其他.C檔案中,通過注冊的方式(二級指標)。
鑒于是裸機,沒有帶作業系統時能用到什么行程通信的概念。不知道如何處理為好,發帖主要是想請教下大家平常設計時是如何處理這種需求的?謝謝!
uj5u.com熱心網友回復:
自己頂一下
uj5u.com熱心網友回復:
1,搞一個自己的頭檔案,把需要用extern來宣告的變數函式之類的全扔進去。2,每一個涉及外部變數和函式的.c檔案都去包涵這個頭檔案就好了。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/248288.html
標籤:單片機/工控
上一篇:單片機
