これがケースです。私が持っているファイル「fileA.c」に
typedef struct MY_STRUCT
{
int A;
int B;
int C;
}MY_STRUCT;
MY_STRUCT Data;
/* Function */
int function(MY_STRUCT *params)
{
int varA, varB, varC;
varA = params->A;
varB = params->B;
varC = params->C;
}
そして、他のルーチンから構造体要素を埋める必要があります。たとえば、次の内容を含む「fileB.c」です。
extern MY_STRUCT Data;
int function(MY_STRUCT *params);
/* Function */
void userMain(void)
{
Data.A = 1254;
Data.B = 5426;
Data.C = 1236;
function(&Data);
}
しかし、私はエラーが発生しています:
"[エラー] fileB.c E208: 構文エラー - トークン ";" が "Data" の前に挿入されました
エラーをクロス プローブすると、コンパイラは "extern MY_STRUCT Data;" という宣言に移動します。
私の質問は、この機能をどのように達成するのですか? つまり、構造体を宣言したファイルとは別のファイルにある別の関数の構造体の要素をどのように埋めるのですか?