这里是定义了一个指向参数为空,返回值为空的函数的指针类型。
概念理解:
typedef 只对已有的类型进行别名定义,不产生新的类型;
#define 只是在预处理过程对代码进行简单的替换。
清晰了解两个概念后,发现它们就是两个不同的概念,并没有太多的联系。
类比理解:
typedef unsigned int UINT32; // UINT32 类型是unsigned int
UINT32 sum; // 定义一个变量:int sum;
typedef int arr[3]; // arr 类型是 int[3];(存放int型数据的数组)
arr a; // 定义一个数组:int a[3];
同理:
typedef void (*pfun)(void); // pfun 类型是 void(*)(void)
pfun main; // 定义一个函数:void (*main)(void);
示例代码如下:
#include<iostream>
#include<stdlib.h>
using namespace std;
typedef void ( *funcptr)(void); //定义指针类型
void fun1(void) //定义函数一
{
cout << "This is fun1" << endl;
}
void fun2(void) 定义函数二
{
cout << "This is fun2" << endl;
}
int main()
{
funcptr p1; //定义了一个该类型的指针p1
p1 = fun1; //p1指向函数一
p1();
p1 = fun2; //p1指向函数二
p1();
system("pause");
}