OSを実行していないマイクロコントローラー用のCプログラムに多数のモジュールがあります。各モジュールには、モジュールのステータスを表す独自の型定義、列挙、およびデータ構造体定義があり、モジュールの関連するヘッダー ファイルでそれらを定義するのが適切だと思います。
次に、グローバル変数を global_var.c に定義して、システム全体の現在のステータスを「記憶」します。モジュールのデータ構造はグローバル変数の定義で参照されているため、すべてのモジュール ヘッダーが global_var.h に含まれています。
ただし、これらのモジュールもグローバル変数にアクセスする必要があるため、global_var.h も含める必要があります。
グローバル変数を保持したい場合、ヘッダー ファイルの相互インクルードを回避するにはどうすればよいですか?
どうもありがとう!
global_var.h
#ifndef GLOBAL_VAR_H
#define GLOBAL_VAR_H
#include "module.h"
typedef struct GLOBAL_STRUCTURE {
module_structure m;
} global_structure;
#endif
global_var.c
#include "global_var.h"
global_structure gs;
モジュール.h
#ifndef MODULE_H
#define MODULE_H
typedef struct MODULE_STRUCTURE {
int a;
} module_structure;
void module_function(void);
#endif
module.c
#include "global_var.h"
extern global_structure gs;
void module_function(void) {
gs.m.a=0;
}