私は組み込みCプロジェクトに取り組んでおり、グローバル変数の再定義に問題があります。
関数の宣言と定義をいくつかの.hファイルと.cファイルに分割しました。これらの関数の多くは、global_vars.hで定義されているグローバル変数にアクセスする必要があります。したがって、ヘッダーファイルの先頭の#ifndef、#defineセクション内の「global_vars.h」。そうしないと、ご想像のとおり、未定義の変数エラーが大量に発生します。
ただし、global_vars.hに#ifndef _GLOBAL_VARS_H_ #define ... #endifがある場合でも、すべてのグローバル変数の再定義エラーが発生します。私の推測では、リンカがさまざまなオブジェクトファイルをリンクしようとすると、すべての「blah_blah.h」ファイルにある#include「global_vars.h」による再定義が表示されます。ただし、#ifndef...がこの問題を処理することは私の理解でした。
見落としているものはありますか?
前もって感謝します