在编程中使用typedef目的一般有两个:
一个是给变量提供一个易记且意义明确的新名字(类型有新别名,方便变量的定义),
另一个是简化一些比较复杂的类型声明。
例如有个类型是ABCDEFGHIHJKLLLLKLKLSAD,我们不用他,给他起一个简短的名字,即是zero
typedef struct ABCDEFGHIHJKLLLLKLKLSAD
{
/* 他的类型名字是int ,int为原子类型,我们无需定义*/
};
typedef ABCDEFGHIHJKLLLLKLKLSAD zero
这里有个地方需要明白:
struct A
{
//…
};
前者叫做“结构体类型定义”,意思是:定义{}中的结构为一个名称是“A”的结构体。
struct
{
//…
} A;
后者是结构体变量定义,意思是:以{}中的结构,定义一个名称为"A"的变量。这里的结构体称为匿名结构体,是无法被直接引用的。