5 类型重命名typedef
5.1 类型重命名介绍
定义:给已有数据类型声明一个新名字
5.2 typedef用法
语法:
typedef 类型 新名字;
实例:
typedef unsigned char Byte;
Byte b = 0x11;
typedef char* Str;
Str str = "ABCDEFG";
5.3 结构体类型重命名
作用:使用结构体类型时,需要使用struct关键字,typedef可以省略这个关键字。
语法:
typedef struct {
成员;
} 类型名;
实例:
typedef struct Point3D{
int x;
int y;
int z;
} Point3D;
Point3D p = {1,2,3};
结构体类型名可以省略
typedef struct{
int x;
int y;
int z;
} Point3D;
Point3D p = {1,2,3};
- 结构体指针
在typedef定义结构体同时,可以定义结构体指针。
typedef struct{
int x;
int y;
int z;
} Point3D,*pPoint3D;
Point3D p = {1,2,3};
pPoint3D q = &p;
5.4 函数指针类型重命名
语法
typedef 返回类型 (* 函数指针类型)(参数)
实例
#include <stdio.h>
typedef int length;
typedef char C,*S;
int add(int a,int b){
return a+b;
}
typedef int (*opt)(int,int);
int main(){
length n = 100;
C c = 'c';
S s = "Hello";
printf("%d %c %s\n",n,c,s);
opt fpadd = &add;
printf("%d\n",(*fpadd)(1,3));
}
5.5 typedef的作用
- 为现有类型创建别名,定义易于记忆的类型名。
- 简化代码。
- 便于批量修改具体类型。