typedef
一种在计算机编程中用来声明自定义数据类型,配合各种原有数据类型达到简化编程目的的类型定义关键字typedef 是C语言语句, 其功能是用户为已有数据类型取别名
For Example
typedef int INTEGER; INTEGER a,b; // 以后就可用INTEGER来代替int作整型变量的类型
用typedef定义数组、指针、结构等类型将带来很大的方便,不仅使程序书写简单而且使意义更为明确,因而增强了可读性。例如:
typedef int a[10];//表示a是整型数组类型,数组长度为10。 a s1,s2;//完全等效于:int s1[10],s2[10] ;
同理 typedef void (*p)(void) 表示p是一种指向void型的指针类型!
#define
预处理指令
For Example#define int INTEGER
表示在源程序中的所在int将会被 INTEGER 原样代替. 程序中有int a,b ;则在编译前将被替换为INTEGER a,b;
区别
#define是C中定义的语法, typedef 是C++ 中定义的语法, 二者在 C++ 中可以通用, 但#define 成了预编译指令, typedef 当成语句处理. typedef 和define 都可以用来给对象取一个别名, 但是俩者却有很大的不同, 有以下几点
执行时间不同关键字 typedef 在编译阶段有效, 犹豫是在编译阶段, 因此 typededf 有类型检查的功能.