typedef 宏定义替换一般变量的用法在此不再赘述。
本文主要针对函数指针这一用法做如下记录:
#include <stdio.h>
void (*pFunc)(void); <span style="white-space:pre"> </span>//通用的函数指针定义
void pf1(void)
{
printf("This is a function 1.\n");
}
void pf2(void)
{
printf("This is a function 2.\n");
}
void pf3(void)
{
printf("This is a function 3.\n");
}
int main(void)
{
pFunc = pf2;<span style="white-space:pre"> </span>//通过函数指针获取函数入口地址,从而实现调用不同函数的功能
(*pFunc)();
pFunc = pf1;
(*pFunc)();
pFunc = pf3;
(*pFunc)();
return;
}
运行结果如下:
利用typedef的函数指针用法;
#include <stdio.h>
typedef void (*pFunc)(void);<span style="white-space:pre"> </span>//利用typedef声明函数指针类型;
void pf1(void)
{
printf("This is a function 1.\n");
}
void pf2(void)
{
printf("This is a function 2.\n");
}
void pf3(void)
{
printf("This is a function 3.\n");
}
int main(void)
{
pFunc reloadFunc;<span style="white-space:pre"> </span>//声明对应的函数指针变量;简化了函数指针的定义过程
reloadFunc = pf1;
(*reloadFunc)();
reloadFunc = pf2;
(*reloadFunc)();
return;
}
运行结果如下: