我正在学习c编程,我想知道struct
和typdef 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不能互换,因为它们有不同的名称。