FreeModbus--学习函数指针
2023-12-14 13:20:33
函数指针
该协议栈中使用到函数指针,现开展一篇专门存放函数指针的文章。
C语言的函数指针是指向函数的指针变量,可以用来存储和调用函数的地址。在C语言中使用函数指针可以实现以下几种功能:
? ? ? ? 作为函数的参数:函数指针可以作为参数传递给其他函数,使得可以在调用函数时动态指定要执行的函数。
? ? ? ? 作为函数的返回值:函数指针可以作为函数的返回值,返回指向函数的地址。
? ? ? ? 作为数组元素:可以使用函数指针数组来存储多个函数的地址,便于根据需要选择执行某个函数。
最简单的例子:
#include <stdio.h>
typedef void (*FuncPtr)(int); // 声明一个函数指针类型
/* 定义两个函数,用于演示函数指针的操作 */
void func1(int num)
{
printf("This is function 1 with argument %d\n", num);
}
void func2(int num)
{
printf("This is function 2 with argument %d\n", num);
}
int main()
{
// 声明函数指针变量
FuncPtr ptr;
// 将函数地址赋值给函数指针变量
ptr = func1;
// 通过函数指针调用函数
ptr(10);
// 将函数地址赋值给函数指针变量
ptr = func2;
// 通过函数指针调用函数
ptr(20);
return 0;
}
稍作修改例子
为了更贴合协议栈的函数指针,稍加修改例子。
文章来源:https://blog.csdn.net/weixin_47077788/article/details/134990314
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!