すべてのコードが*.c
/*.h
ファイルのペアで編成されているCプロジェクトがあり、1つのファイルで定数値を定義する必要がありますが、他のファイルでも使用されます。この値をどのように宣言して定義する必要がありますか?
static const ...
それはファイルのようにすべき*.h
ですか?ファイルのようextern const ...
に、*.h
ファイルで定義されてい*.c
ますか?int
値がプリミティブデータ型( 、、double
など)ではなく、achar *
またはaであるかどうかは、どのように重要struct
ですか?(私の場合はですがdouble
。)
ファイル内のものを定義すること*.h
は、一般的には良い考えとは思えません。ファイルで物事を宣言する必要があり*.h
ますが、ファイルでそれらを定義し*.c
ます。ただし、extern const ...
コンパイラは値をインライン化できないため、このアプローチは非効率的であるように見えます。代わりに、常にそのアドレスを介してアクセスする必要があります。
この質問の本質は次のとおりです。複数の場所で値を使用するには、Cのファイルでstatic const ...
値を定義する必要がありますか?*.h