当前位置: 首页 > news >正文

C语音学习---函数指针

目录

1. 函数指针解析

2. 自定义实现(函数指针赋值)


利用下面一段例子来解析:

int (*set_slave)(modbus_t *ctx, int slave);

1. 函数指针解析

  • set_slave 是一个 函数指针,指向一个函数。

  • 该函数接受两个参数:

    • modbus_t *ctx:Modbus 上下文(context),存储 Modbus 通信的配置信息(如串口、IP 地址等)。

    • int slave:要设置的 从站地址(Slave ID,范围通常是 1~247)。

  • 返回 int

    • 0 表示成功。

    • -1 表示失败(如无效的 Slave ID)。

2. 自定义实现(函数指针赋值)

如果你想自己实现一个 set_slave 函数并赋值给函数指针:

#include <stdio.h>
#include <stdint.h>typedef struct modbus_t modbus_t;  // 假设 modbus_t 是一个结构体// 自定义 set_slave 实现
int my_set_slave(modbus_t *ctx, int slave) {if (slave < 1 || slave > 247) {printf("Error: Invalid slave ID %d (must be 1-247)\n", slave);return -1;}printf("Slave ID set to %d\n", slave);return 0;
}int main() {// 定义函数指针并赋值int (*set_slave)(modbus_t *, int) = my_set_slave;modbus_t ctx;  // 假设已经初始化int slave_id = 10;// 调用函数指针int ret = set_slave(&ctx, slave_id);if (ret == -1) {printf("Failed to set slave ID\n");}return 0;
}

 

 

http://www.xdnf.cn/news/388423.html

相关文章:

  • Redis爆肝总结
  • 【嵌入式DIY实例-Arduino篇】-DIY遥控手柄
  • IC ATE集成电路测试学习——电流测试的原理和方法
  • 数据库与SQL核心技术解析:从基础到JDBC编程实战
  • 设计模式系列(1):总览与引导
  • NX989NY104美光科技芯片NY109NY113
  • LVGL(lv_btnmatrix矩阵按钮)
  • Babel 基础使用指南:从安装到编译的完整流程
  • MySQL主从复制
  • CacheBackEmbedding 组件的运行流程和使用注意事项
  • 使用 SHAP 进行特征交互检测:揭示变量之间的复杂依赖关系
  • 实战项目6(09)
  • 【计算机视觉】OpenCV实战项目:Text-Extraction-Table-Image:基于OpenCV与OCR的表格图像文本提取系统深度解析
  • Java泛型补充与理解
  • LangChain 使用指南与原理
  • ENSP-OSPF综合实验
  • 无人机空中物流优化:用 Python 打造高效配送模型
  • 类型别名与接口的对比与选择
  • 二、transformers基础组件之Tokenizer
  • 华为OD机试真题——九宫格按键输入(2025A卷:200分)Java/python/JavaScript/C/C++/GO最佳实现
  • Github 2025-05-11 php开源项目日报 Top10
  • 探索虚拟化:云计算时代的资源优化之道
  • C++ RAII机制
  • 用C语言实现的——一个支持完整增删查改功能的二叉排序树BST管理系统,通过控制台实现用户与数据结构的交互操作。
  • 单细胞RNA测序数据分析与可视化:从基础原理到高级应用
  • 每日c/c++题 备战蓝桥杯(洛谷P1115 最大子段和)
  • Day21打卡—常见降维算法
  • 【EBNF】EBNF:扩展巴克斯-诺尔范式文件格式与实用写法详解
  • 支持向量机的回归用法详解
  • “爱生活”小项目问题总结