1. 定义数组类型
typedef int MyIntArray [100];
MyIntArray ia;
2.定义函数指针
typedef void (*FUNCADDR)(int) ;
FUNCADDR pFunc;
这两个比较简单,不说那么多了
3.定义结构体类型
typedef struct {int x; int y;} Point;
Point var_1; // 定义了变量var_1
Point array_1 [10]; // 定义了数组array_1
struct {Point part1; int part2;} cplx; // 定义了复杂类型变量cplx
只说第三种。可以定义结构体,然后结构体里面你就可以随便放东西了,类里面可以放的,都可以。包括函数指针什么,几乎可以和class媲美了!实际是使用,处理一些规律的数据,或者成组的数据,经常会用到。比如:
typedef struct {int age; char name[20];} Student;
Student stu1,sut2;
很方便,#define完全没法这么玩。貌似也只有typedef可以实现这个功能(希望大家继续讨论)。
#define更多时候是定义一些常量,最常见的就是PI 3.14什么的了
也有一些程序中多次用到的常数,修改维护的时候只要改动一下就好。 |