2

这两个是一样的吗?

struct EMPLOYEE {
...
};

int main (void)
{
    //Local Declaration
    struct EMPLOYEE em1;
    struct EMPLOYEE em2;
    ...

    return 0;
}

struct EMPLOYEE {
...
}em1,em2;

如果我使用后一种情况,我是否不需要像前一种情况那样在主函数中声明这些结构?

4

2 回答 2

2
struct EMPLOYEE {
...
};

定义了一个名为 EMPLOYEE 的结构,但不创建任何实例。

struct EMPLOYEE {
...
}em1,em2;

em1定义结构 EMPLOYEE 并创建两个名为和的实例em2

于 2013-03-21T01:12:05.213 回答
0

使用

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;
    }
于 2013-03-21T01:46:41.817 回答