c语言 - struct 和 typedef struct 有什么区别?



我正在学习c编程,我想知道structtypdef struct之间有什么区别

因为从我看到的

struct Structure {
char * name; 
int number;
};

行为与相同

typedef struct {
char * name;
int number;
} Structure;

在此声明中

struct Structure {
char * name; 
int number;
};

声明了类型说明符CCD_ 3。在声明中使用它,你必须像一样编写关键字结构

struct Structure s;

您可以引入一个变量名Structure,它不会和结构标记名冲突,因为它们位于不同的名称空间中。

在本声明中,

typedef struct {
char * name;
int number;
} Structure;

声明了引入了别名CCD_ 4的未命名结构。在定义结构的同一范围内,不能为变量引入相同的名称Structure。

它们不一样。

第一个创建了一个名为struct Structure的结构,这种类型的变量定义如下:

struct Structure myvar;

第二个创建了一个匿名结构,并将其命名为Structure。这种类型的变量定义如下:

Structure myvar;

另外,这两个structs不能互换,因为它们有不同的名称。

最新更新