关键字的应用,typedef :
使用 typedef 定义函数指针:不同于普通的函数声明,使用typedef来修饰,会声明一个“类型”(int char float),然后可以用该类型去定义需要的变量(int a; char c; float f;)
/* 声明一个函数 */
int add(int a, int b)
{
return a + b;
}
typedef int (PTypeFun1)(int, int); // 声明一个函数类型
typedef int (*PTypeFun2)(int, int); // 声明一个函数指针类型
int (*padd)(int, int); // 传统形式,定义一个函数指针变量
int main() {
PTypeFun1 *pTypeAdd1 = add;
PTypeFun2 pTypeAdd2 = add;
padd = add; /* 将add函数的首地址赋给指针padd */
cout << pTypeAdd1(1, 2) << endl;
cout << pTypeAdd2(1, 2) << endl;
cout << padd(1, 2) << endl;
return 0;
}
使用 typedef 定义函数指针,代码看起来更简洁,也更不容易出错。其次,当函数指针作为其它函数的参数,特别是作为返回值时,直接使用的函数指针无法编译。