「AAA.h」という名前のヘッダー ファイルがあります。このヘッダー ファイルではlrd
、次のようなという構造体を定義しています。
struct lrd
{
int tc;
char ptc[5];
char stc[5];
char ath[5];
int vc;
};
struct lrd lr;
このヘッダー ファイル「AAA.h」は、「BBB.c」と「CCC.c」という 2 つの異なるファイル名に含まれています。lr
次のように、「BBB.c」ファイルの構造変数に値を割り当てました。
lr.tc=tc;
memcpy(lr.ptc,ptc,sizeof(ptc));
memcpy(lr.stc,stc,sizeof(stc));
memcpy(lr.ath,ath,sizeof(ath));
lr.vc=vc;
上記のソース変数は、データベースから値を取得します。lr
そして、「CCC.c」ファイルで構造変数を使用します。次のように、構造 lrd 変数を使用しています。
char *ptc()
{
sprintf(str, "lr.ptc(%s)", lr.ptc);
trace(str);
return lr.ptc;
}
char *stc()
{
sprintf(str, "lr.stc(%s)", lr.stc);
trace(str);
return lr.stc;
}
「CCC.c」ファイルで、変数 stc が間違った値を示します。 それを理解するのを手伝ってください。