C中的结构和类型定义
如果我创建了一个结构:C中的结构和类型定义,c,C,如果我创建了一个结构: struct student { int id; char name [20]; student * next}; 以下是什么意思: typedef struct student student? 学生*下一步做什么 谢谢大家! Atypedef创建一个新名称。因此,这些是完全等效的: student *next; struct student *next; 在您的示例中,struct和typedef具有相同的名称。但可能是这样的: struct something
struct student {
int id;
char name [20];
student * next};
以下是什么意思:
typedef struct student student?
学生*下一步做什么
谢谢大家! A
typedef
创建一个新名称。因此,这些是完全等效的:
student *next;
struct student *next;
在您的示例中,struct和typedef具有相同的名称。但可能是这样的:
struct something {
/* ... */
};
typedef struct something student;
typedef的声明与它引入的类型类似
作为旁注,.在C中,无论何时使用结构,都必须使用关键字
struct
。通过typedefingtypedef struct student-student
,您可以说struct student
,只要说student
一个命名结构,关键字struct
通常用于创建结构实例并引用结构类型
typedef
允许您虚拟地为student
创建一个别名,而不必经常使用struct student
,从而使它的行为更像一个内置类型。typedef struct student代码>
这将为struct student
创建一个名为student
的别名
结构标记和类型名称在C中位于两个不同的名称空间中(在C++中不是这样),因此允许对别名和标记使用相同的名称。您是否考虑过读取一个?并且您可以捷径执行typedef struct something{…}something
@Eregrith:甚至typedef struct{…}什么的但是,当您希望结构包含指向自身的指针时,代码>快捷方式不起作用。在这种情况下,如果要在结构定义中使用typedef名称,则需要在定义结构之前首先对不完整的结构类型进行typedef。