1.typedef的意义
- typedef用于给一个已经存在的数据类型重命名
- typedef 本质上不能产生新的类型
- typedef重命名的类型:
- 可以在typedef语句之后定义
- 不能被unsigned和signed修饰(如unsigned INT32是不被允许的)
用法︰
typedef type new_name;
使用示例:
#include <stdio.h>
typedef int Int32;
struct _tag_point
{
int x;
int y;
};
typedef struct _tag_point Point;
//下面这种写法相当于把上面的两部分代码进行合并
//声明结构体并重命名为SoftArray,这种写法我们最为常用
typedef struct
{
int length;
int array[];
} SoftArray;
//这里编译器只认为,看到ListNode就是为_tag_list_node 类型,其他的不管,也没有说要先定义该结构体类型才行
typedef struct _tag_list_node ListNode;
struct _tag_list_node
{
ListNode* next;
};
int main()
{
Int32 i = -100; // int
//unsigned Int32 ii = 0;
Point p; // struct _tag_point
SoftArray* sa = NULL;
ListNode* node = NULL; // struct _tag_list_node*
return 0;
}
小结一下:
typedef本质上不是产生一个新的类型,而是给一个已有的类型,包括基本类型和结构体等一个新的名字,重命名一个已有的类型的名字而已。