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