RTOS训练营C语言基础-函数指针

创建时间:2022/2/21 15:39
更新时间:2022/3/30 14:39
作者:gi51wa2j
标签:bingo, C, RTOS训练营, 细节知识

1. 变量指针

2. 函数指针

指向函数的起始地址
举例:定义一个指向函数的指针pfun

3. 对比普通指针和函数指针



/* lesson5:函数指针 */ //加法函数 int add(int a,int b) { return a+b; } //减法函数 int sub(int a,int b) { return a-b; } # if 1 //定义函数指针别名 typedef int (*pfun)(int, int); //计算函数 int calc(pfun fp, int a, int b)  {   return fp(a,b); } #else //不定义函数指针别名,名字较长 //typedef int (*pfun)(int, int); //计算函数 int calc(int (*pfun)(int, int), int a, int b)  {   return pfun(a,b); } #endif int main(void) { int c; c=calc(add, 5, 3); //加法 c=calc(sub, 5, 3); //减法 return 0; }

4. 函数指针的应用

函数里面,调用函数指针所指向的函数来进行运算。

在单片机裸机开发中,函数指针使用的不多,但是在RTOS中,函数指针使用的非常多。创建任务的任务函数就是通过函数指针来传值的。