菜鸟笔记
提升您的技术认知

typedef struct定义结构体与struct定义结构体之间的差异

C语言基础:typedef struct,struct.typedef union,定义之间的差异

一、typedef是什么

typedef 是一种定义类型的标识符,实例:
typedef int int_t;
意思是将int的类型转移到了int_t上,int_t现在可以像int一样去定义整形常量或变量,如:int_t 3; 这个与int 3是相同的意思。
就相当给int起了一个别名!!

二、struct,union是什么?

struct是结构体,union是共用体。本文并不详细介绍这两个东西,主要介绍题目中它们存在的差异。详细的可以去搜这方面的基础知识呦o( ̄︶ ̄)o。

2.typedef struct与struct之间的差异

struct student {
int name;
int phone;
int class;
} xiaoming;

这里定义了一个结构体,它的结构体变量是xiaoming,对内容更改可用xiaoming.name=3,xiaoming.class=3等等。

typedef struct student {
int name;
int phone;
int class;
} xiaoming;

它的意思是将struct student命名为xiaoming,xiaoming并不是结构体变量,他是一个结构体名,他需要xiaoming zhangsan;去声明一个叫做张三的结构体变量,然后通过zhangsan.name等等。去更改内容。

不用再像struct student zhangsan这样去声明结构体变量zhangsan。看上去更加简洁。

共用体union于此在意义上是相同的,如下:
typedef union{

} stu
声明共用体变量时要stu stu1就可以了。

union stu{

}
声明共用体变量时就要union stu stu1。