尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
C语言进阶语法,函数指针
函数指针又称指向函数的指针指的是一个指针变量其值为一个函数的地址。对于函数指针的使用包含以下部分。对于函数指针具体示例如下所示。#include // 定义指向函数的指针的类型 typedef int (*func_ptr)(int, int); typedef struct { int a; int b; // 声明函数指针 func_ptr add_func; }STRUCT_DEMO; static int add(int a, int b) { return a b; } int main(int argc, char *argv[]) { STRUCT_DEMO demo; demo.a 1; demo.b 2; // 赋值函数指针变量 demo.add_func add; // 调用函数指针输出结果 printf(%d\n, demo.add_func(demo.a, demo.b)); // 输出3 return 0; }对于函数指针常用方式就是结合数组指针实现通过列表访问对应的函数在协议解析和事件处理时可以使用分支处理具体如下所示。#include typedef int (*func_ptr)(int, int); static int math_add(int a, int b) { return a b; } static int math_sub(int a, int b) { return a - b; } static int math_mul(int a, int b) { return a * b; } static int math_div(int a, int b) { return a / b; } #define MATH_ADD 0 #define MATH_SUB 1 #define MATH_MUL 2 #define MATH_DIV 3 func_ptr math_func[4] { math_add, math_sub, math_mul, math_div }; int main(int argc, char *argv[]) { int a 1; int b 2; int id 0; // 调用函数指针输出结果 id MATH_ADD; printf(MATH_ADD: %d\n, math_func[id](a, b)); // 输出3 id MATH_SUB; printf(MATH_SUB: %d\n, math_func[id](a, b)); // 输出-1 id MATH_MUL; printf(MATH_MUL: %d\n, math_func[id](a, b)); // 输出2 id MATH_DIV; printf(MATH_DIV: %d\n, math_func[id](a, b)); // 输出0 return 0; }对于上述代码指向结果如下所示。可以看到如果id表示在协议解析和事件处理中的编号就可以直接通过数组加指针函数的方式进行调用同时代码中也可以对支持的事件和执行函数进行统一管理是常用的开发方案。
RELATED

相关推荐

NS-USBLoader移动版:用Android手机为Switch安装游戏的终极解决方案

NS-USBLoader移动版:用Android手机为Switch安装游戏的终极解决方案

NS-USBLoader移动版:用Android手机为Switch安装游戏的终极解决方案 【免费下载链接】ns-usbloader-mobile Android Tinfoil/Awoo/GoldLeaf files uploader 项目地址: https://gitcode.com/gh_mirrors/ns/ns-usbloader-mobile 还在为Switch游戏安装需要电脑而…

📅 2026/11/6 12:31:29
节奏游戏高难度段落实战策略:从崩溃到通关

节奏游戏高难度段落实战策略:从崩溃到通关

上周五晚上,我本来计划用一小时把《Friday Night Funkin》QT模组里鹰眼角色的剩下三首曲子录完。结果从第三首开始,那个下楼梯的段落连续卡了我将近四十分钟。每次快到结尾,那个突然加速的十六分音符组合就像脱缰的野马一样,把我的…

📅 2026/10/16 10:35:53
洛雪音乐助手:免费开源的跨平台音乐播放终极解决方案

洛雪音乐助手:免费开源的跨平台音乐播放终极解决方案

洛雪音乐助手:免费开源的跨平台音乐播放终极解决方案 【免费下载链接】lx-music-desktop 一个基于 Electron 的音乐软件 项目地址: https://gitcode.com/GitHub_Trending/lx/lx-music-desktop 你是否厌倦了各种音乐平台的会员限制和广告干扰?想要…

📅 2026/10/6 1:37:37
MORE NEWS

更多资讯

📰

湘西电工证复查在哪考?怕考不过白交培训费?看完这篇全明白了

湘西电工证复查在哪考?怕考不过白交培训费?看完这篇全明白了 怕考不过白交培训费?别急,今天给你讲明白湘西电工证复查到底 在哪考 、怎么查、怎么考过,还有你最关心的薪资、发展路径,全都一网打尽。 湘西电工证复查是啥?怎么查?…

📰

临海电工证复审别踩坑!含金量怎么保障?三门峡老电工给你说清楚

临海电工证复审别踩坑!含金量怎么保障?三门峡老电工给你说清楚 你是不是也在为临海电工证复审发愁?不知道去哪报名,怕被中介坑?别急,老电工来帮你理清思路,从 含金量 到流程避坑,一文讲透!…

📰

初级电工证多少分拿证千万别踩坑 这些避坑干货工地电工都该看

初级电工证多少分拿证千万别踩坑 这些避坑干货工地电工都该看 工地太忙根本没时间复习考试,这几乎是所有一线电工的真实写照。初级电工证考试,不是你考不考得过的问题,而是你能不能在有限时间里 高效拿证…

📰

江苏省代办电工证在哪考?外省证怎么转过来?

江苏省代办电工证在哪考?外省证怎么转过来? 之前考的证在外省能不能转过来?这几乎是每个想考江苏省电工证或者已经在外地拿到证但想在江苏执业的朋友最关心的问题。特别是像驻马店的应届工程类毕业生,毕业后想在江苏发展,却发现之前在外省考的证可能不被…

📰

松山湖低压电工证培训真实经历:学历不高也能考,这几点必须知道

松山湖低压电工证培训真实经历:学历不高也能考,这几点必须知道 你是不是也担心学历不高,连低压电工证都报不上名?其实不然,我之前在商丘做建筑工,学历只有初中,也能顺利考下低压电工证,今天就用我的 真实经历 告诉你, 松山湖低压电工证培训…

📰

不会电脑怎么考电工证 内部消息告诉你怎么操作

不会电脑怎么考电工证 内部消息告诉你怎么操作 之前考的证在外省能不能转过来?这个问题我听得太多了,尤其在安阳本地的劳务班组负责人,很多都遇到过这种情况。今天我就从一个从业多年的老手角度,告诉你 不会电脑怎么考电工证 ,以及如何通过…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬