私はヘッダファイルと2つのソースファイルを持っています。このヘッダファイルには、次の宣言があります。配列宣言でヘッダを含むときのエラー
const char *letters[] = {"A", "B", "C", "D"};
私は両方のソースファイルに自分のヘッダファイルを含めました。私がコンパイルしようとする私が取得:
/tmp/cc6gLw9s.o:(.data+0xa0): multiple definition of `letters'
/tmp/ccjqd0rr.o:(.data+0xa0): first defined here
同じ変数が複数回定義されていますが、それは配列ですが変数です。変数**定義**をヘッダーに入れてはいけません。 – StoryTeller
これは、技術的に*コンパイラ*エラーではなく、リンカ*エラーであり、複数の[*翻訳単位*](* https://en.wikipedia.org/wiki/Translation_unit_%28programming)で変数を定義する*ことを意味します%29)(基本的に全てのヘッダを含むソースファイル)。ヘッダーファイルに*変数*を定義しない*。 –