一.
typedef定义类型的别名,和引用相似,引用是变量或者对象的别名
typedef prefix suffix; //程序中用后者表示前者
#define m_prefix m_suffix; //程序中用前者表示后者
这是关于这两者我最直接肤浅的理解。
二.
typedef struct 和 struct定义结构体也更好理解了。
在C中定义一个结构体类型要用typedef:
(1)
typedef struct Student
{
int age;
int number;
string name;
}Stu;
typedef struct 结构名
{
类型 变量名;
类型 变量名;
...
}结构别名;
由此看来Stu实际上是struct Student的别名:Stu==struct Student
于是在声明变量的时候就可以写:Stu stu1;(如果没有typedef就必须用struct Student stu1;来声明)
(2)如果没有Student
typedef struct
{
int age;
int number;
string name;
}Stu;
声明变量的时候要写: Stu stu1; //Stu成了唯一一个结构体类型而不是结构体别名。
三.
C++中定义的结构体
(1)结构体类型Student
struct Student
{
int age;
int number;
string name;
}stu2;
声明变量时直接:stu2就直接是一个Student的变量了
(2)
typedef struct Student
{
int age;
int number;
string name;
}stu2;
这里stu2是一个结构体类型=struct Student
参考博客:
https://www.cnblogs.com/qyaizs/articles/2039101.html
https://blog.csdn.net/qq_41139830/article/details/88638816