【发布时间】:2020-03-16 22:35:01
【问题描述】:
我正在学习 c 编程,我想知道 struct 和 typdef struct 之间有什么区别
因为我所看到的
struct Structure {
char * name;
int number;
};
作用相同
typedef struct {
char * name;
int number;
} Structure;
【问题讨论】:
我正在学习 c 编程,我想知道 struct 和 typdef struct 之间有什么区别
因为我所看到的
struct Structure {
char * name;
int number;
};
作用相同
typedef struct {
char * name;
int number;
} Structure;
【问题讨论】:
在此声明中
struct Structure {
char * name;
int number;
};
声明了一个类型说明符struct Structure。在声明中使用它,您必须编写关键字结构,如
struct Structure s;
你可以引入一个变量名结构,它不会与结构标签名冲突,因为它们在不同的命名空间中。
在此声明中
typedef struct {
char * name;
int number;
} Structure;
声明了一个未命名的结构,并为其引入了别名Structure。您不能在定义结构的同一范围内为变量引入相同名称的结构。
【讨论】:
它们不一样。
首先创建一个名为struct Structure的结构体,该类型的变量定义如下:
struct Structure myvar;
第二个创建一个匿名结构,并为其赋予别名Structure。这种类型的变量定义如下:
Structure myvar;
此外,这两个结构不能互换,因为它们有不同的名称。
【讨论】: