checkpatch.plスクリプト「extern宣言は.cファイルの外にあります」(パッチがコーディングスタイルに準拠しているかどうかを調べるために使用)注:これはコンパイル警告なしで完全に正常に機能します。この問題は、extern宣言を.hファイルに配置することで解決されます。
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ファイル)を持つことは、多くのヘッダーファイルにあるように思われます。