2014-03-31 62 views
1

我正在爲之工作的公司具有針對嵌入式目標進行C開發的開發規則。一種是:頭文件中的內存分配

建議不要在頭文件中分配任何存儲空間。

我不確定它是什麼意思,寫它的人不在,其他開發人員也不在乎,所以我在這裏問。

我的理解是,我不應該在一個頭文件中聲明變量,所以這樣的事情會在.h氣餒:

int myVar; 
    static char myOtherVar; 

我不明白的是什麼錯?爲什麼我不應該這樣做?

回答

5

問題在於外部變量被雙重定義,而static則爲包含頭部的每個模塊定義了浪費空間(除非它們被優化掉)。

0

您應該聲明在C文件中的變量,並在頭文件使用

extern int myVar; 

,或者更好的是,寫一個訪問功能。

在頁眉中有static char myOtherVar;是沒有意義的,因爲靜態意味着它只能在聲明它的文件中訪問。