根據checkpatch.pl腳本「extern聲明在.c文件之外」 (用於檢查補丁是否符合編碼風格) 注意:這個在沒有編譯警告的情況下工作得很好 該問題可以通過在.h文件中放置extern聲明來解決。extern聲明爲什麼要在.c文件之外(按照linux編碼風格)
a.c
-----
int x;
...
b.c
----
extern int x;
==> checkpatch抱怨
a.h
-----
extern int x;
a.c
----
int x;
b.c
----
#include "a.h"
==>不抱怨
我想知道爲什麼這是更好的
我的猜測。 理想情況下,代碼被分割成文件以模塊化代碼(每個文件都是模塊) 模塊導出的接口放置在頭文件中,以便其他模塊(或.c文件)可以包含它們。所以如果任何模塊想要在外部公開一些變量,那麼必須在對應於該模塊的頭文件中添加一個extern聲明。
同樣,具有與每個模塊(.c文件)相對應的頭文件似乎對許多頭文件具有 。
這不是那麼多,因爲頭中的接口的實現可能會跨多個翻譯單元進行拆分。 – StoryTeller 2013-02-08 11:46:44
*「我的Sepulation」*是正確的。而已。 – 2013-02-08 12:13:02