この二つは同じですか?
struct EMPLOYEE {
...
};
int main (void)
{
//Local Declaration
struct EMPLOYEE em1;
struct EMPLOYEE em2;
...
return 0;
}
と
struct EMPLOYEE {
...
}em1,em2;
後者のケースを使用する場合、前者の場合のようにメイン関数でそれらの構造を宣言する必要はありませんか?
struct EMPLOYEE {
...
};
EMPLOYEE という構造を定義しますが、それ以外の場合はインスタンスを作成しません。
struct EMPLOYEE {
...
}em1,em2;
構造体 EMPLOYEE を定義し、 と という 2 つのインスタンスを作成しem1
ますem2
。
を使用して
struct EMPLOYEE {
...
}em1,em2;
その後、次のようにメインでそれらを使用できます
int main (void)
{
em1.memberx = 2; /*assuming memberx is a member of your structure.*/
return 0;
}
それ以外の場合は、メイン関数の例で行ったように宣言する必要があります。
このようにする別のオプションがあります:
typedef struct
{
...
}EMPLOYEE;
そして、次のように宣言します。
EMPLOYEE em1;
EMPLOYEE em2;
そしてあなたのメインでもこのようにそれらを使用してください:
int main (void)
{
em1.memberx = 2; /*assuming memberx is a member of your structure.*/
return 0;
}