これは私のCプログラムです...
#include <stdio.h>
struct xyx {
int x;
int y;
char c;
char str[20];
int arr[2];
};
int main(void)
{
struct xyz a;
a.x = 100;
printf("%d\n", a.x);
return 0;
}
これは私が得ているエラーです...
Enterキーを押すか、コマンドを入力して続行します
13structtest.c:関数 'main': 13structtest.c:13:13:エラー: 'a'のストレージサイズが不明です 13structtest.c:13 :13:警告:未使用変数 'a' [-Wunused-variable]
構造体の名前はstruct xyx
しかしa
はタイプstruct xyz
。 一度修正すると、出力は100
。
#include <stdio.h>
struct xyx {
int x;
int y;
char c;
char str[20];
int arr[2];
};
int main(void)
{
struct xyx a;
a.x = 100;
printf("%d\n", a.x);
return 0;
}
次のように言ってください:struct xyx a;
構造体をxyxとして定義していますが、xyzという構造体を作成しようとしています。
正しいタイプミス
struct xyz a;
に
struct xyx a;
Bに簡単にtypedefを試すことができます
構造体をxyx
として定義しますが、メインではstruct xyz a;
を使用します。これは、異なる名前の構造体の前方宣言のみを作成します。
その行の代わりにxyx a;
を使用してみてください。
この問題を抱えている人にとっては、タイプミスです。構造体のスペルチェックと構造体のスペルを確認します
この場合、ユーザーは定義とその使用法を間違えています。誰かがtypedef
を構造に行った場合、struct
を使用せずに同じものを使用する必要があります。以下に例を示します。
typedef struct
{
int a;
}studyT;
関数で使用する場合
int main()
{
struct studyT study; // This will give above error.
studyT stud; // This will eliminate the above error.
return 0;
}