在main()中声明结构

时间:2018-08-22 01:23:58

标签: c

我是C的新手。我被要求修改该程序,以使变量studentanotherStudent不是全局变量,而是局部变量main,它仍将由{{1}打印}。 printStudnets禁止使用。 我知道是否在main中声明struct,并且只能在main函数中使用。我必须在每个函数中声明struct才能实现这一点吗?

typedef

1 个答案:

答案 0 :(得分:4)

您不需要使用typedef来定义新的结构化类型。这是完全正确的:

struct student_s {
    char* name;
    int age;
    struct student_s* next;   
}; // Remove "student". Now you don't have a global variable.

其结果是student_s不是您的结构化类型的名称;它是您的结构化类型的 tag 。因此,声明与student_s相对应的结构化类型的对象必须以关键字struct开头:

int main(void)
{
    struct student_s student;
    ... // The rest of your code remains the same
}