进入正文:
代码简化 , 促进跨平台开发的目的 .
typedef 行为有点像 #define 宏,用其实际类型替代同义字。
不同点: typedef 在 编译时被解释 ,因此让编译器来应付 超越预处理器能力的文本替换 。
用法一:
typedef
typedef
typedef
typedef int
int
int
int (*MYFUN) (int,
(int,
(int,
(int, int)
int)
int)
int) ;
这种用法一般用在给 函数定义别名 的时候
上面的例子定义 MYFUN
MYFUN
MYFUN
MYFUN 是一个 函数指针 , 函数类型是带两个
int
参数 , 返回一个
int
在 分析 这种形式的定义的时候可以用下面的方法
:
先去掉 typedef
typedef
typedef
typedef 和别名 , 剩下的就是原变量的类型 .
.
.
.
去掉 typedef
typedef
typedef
typedef 和 MYFUN
MYFUN
MYFUN
MYFUN 以后就剩 :
:
:
:
int
(*)(int, int)
用法二:
typedef 给变量类型定义一个 别名 .
typedef
typedef
typedef
typedef struct{
int
a;
int
b;
} MY_TYPE
MY_TYPE
MY_TYPE
MY_TYPE ;
这里把一个未命名结构直接取了一个叫 MY_TYPE 的别名 , 这样如果你想定义结构的实例
的时候就可以这样
:
MY_TYPE tmp;
第二种用法 : typedef
typedef
typedef
typedef 原变量类型 别名
简单的函数指针的用法
// 形式 1 :返回类型( * 函数名 ) (参数表)
char ( *pFun)(int);
// typedef
typedef
typedef
typedef char(*
char(*
char(*
char(* pFun )(int)
)(int)
)(int)
)(int) //
//
//
// 跟上一行功能等同
/*typedef
/*typedef
/*typedef
/*typedef 的功能是 定义新的类型 。 第一句就是定义了一种 PTRFUN
PTRFUN
PTRFUN
PTRFUN 的类型 , 并定义这种类
型为 指向某种函数的指针 ,这种函数以一个 int
int
int
int 为参数并返回 char
char
char
char 类型。 */
*/
*/
*/