这两个是一样的吗?
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;
em1
定义结构 EMPLOYEE 并创建两个名为和的实例em2
。
使用
struct EMPLOYEE {
...
}em1,em2;
然后您可以通过以下方式主要使用它们
int main (void)
{
em1.memberx = 2; /*assuming memberx is a member of your structure.*/
return 0;
}
否则,您必须像在 main 函数示例中那样声明它们。
你有另一个选择这样做:
typedef struct
{
...
}EMPLOYEE;
然后像这样声明它们:
EMPLOYEE em1;
EMPLOYEE em2;
并在你的 main 中像这样使用它们:
int main (void)
{
em1.memberx = 2; /*assuming memberx is a member of your structure.*/
return 0;
}