私はグローバル変数構造体を持っています:
typedef struct {
int myvar1;
int myvar2;
int myvar3;
...
int myvar10;
} t_myStruct myGlobalData;
このグローバルな構造は避けられないので、使わなければなりません。私はそれを使用するための3つのオプションがあります:
グローバル変数を「そのまま」任意の関数に使用します。すなわち:
int myFunc(void) { myGlobalData.myvar1 = ... myGlobalData.myvar10 = myGlobalData.myvar5 + ... }
ローカルポインタを宣言して使用します。
int myFunc(void) { t_myStruct * p; p = &myGlobalData; p->myvar1 = ... ... p->myvar10 = p->myvar5 + ... }
ローカル変数を使用してから、グローバル構造体にコピーします。
int myFunc(void) { t_myStruct localStruct; localStruct.myvar1 = ... localStruct.myvar10 = localStruct.myvar5 + ... myGlobalData = localStruct ; }
一般的に最善の方法とその理由を教えてください。