typedef简单的用法与#define比较像,都是宏定义,但是今天看到一个函数指针的typedef有点没看懂,这里总结一下typedef的用法。
1. 定义别名
typedef可以为类型定义一个别名,例如:
typedef int mytype;
mytype a;
这里给int定义了一个别名,可以用别名代替int,而define仅仅是字符替换,发生在编译之前,这是它们的区别。这种别名或宏定义方式在跨平台编程时很有用。
有个需要注意的问题是
1 char* a,b;
2 typedef char* pchar;
3 pchar a, b;
对于第一行,其实没有声明两个字符指针,只有a是字符指针,但是第2,3行,a,b都是字符指针
2. 简化函数指针声明
typedef void(*Fun) (void) 这个是什么意思呢?
void (*Fun)(void) 这个的意思是声明了一个变量Fun,这个变量是一个函数指针,指向的函数输入void, 返回void,即void Fun()
加上了typedef,则Fun表示的是这样的函数指针类型
Fun fun1;
这样就声明了函数指针变量fun1,Fun表示的是类型