在结构中指定设备特定的函数
Specifying device specific functions in struct
我正在使用固件,试图制作一个独立于设备的库。该库使用I2C进行通信,这是一种简单而通用的协议,适用于那些不知道它是什么的人。I2C使用我关心的两个功能,读取和写入。在不同的微控制器上使用I2C,这主要是每个核心的不同,我正在寻找一种方法,让库传递函数,以便它能够以一致的方式使用它们。
如何制作一个结构,让用户可以将变量设置为函数。类似于:
typedef struct I2C_setup{
function read = device specific read function;
function write = device specific write function;
}
然后我可以打电话给
I2C_setup I2C;
此后
(return type) RegisterRead = I2C.read(register address);
我会使用函数指针还是。。。什么
函数指针是个好主意。你可以将你的原型定义为
typedef struct I2C_setup{
(*I2C_Read_Func)(uint32_t devAddr, uint32_t subAddr, uint8_t *pData, size_t lenght);
}
您作为的实际功能
I2C_Read(uint32_t devAddr, uint32_t subAddr, uint8_t *pData, size_t lenght);
你可以通过分配
I2C_setup I2C;
I2C.I2C_Read_Func = I2C_Read;
相关文章:
- 使用不带参数的函数访问结构元素
- 为什么在没有显式默认构造函数的情况下,将另一个结构封装在联合中作为成员的结构不能编译
- 链表,反向函数,数据结构
- 我不明白为什么我声明一个空的内部结构并将其传递给构造函数
- 特征::矩阵<双精度,1,3> 结构类型函数中的返回类型函数
- 需要帮助将结构数组传递给函数
- 使用cpp中的结构和函数的多个学生条目
- 如何传递带有通过引用传递的结构参数的函数?
- 在类构造函数中使用结构变量
- 在 c++ 中将变量作为结构构造函数中的引用传递
- 在类构造函数中定义结构变量的参数
- 如何在模板类函数中分配结构值?
- 我应该在C++中将这些结构用作参数化构造函数吗?
- 给定一个C++嵌套的私有结构类型,是否有从文件范围静态函数访问它的策略
- 在结构外部调用指向函数的指针
- 函数:结构的数组
- C++错误:只能为对象和函数结构指定存储类
- 将libuv与函数结构一起使用,而不是函数回调
- 从c#调用c++函数-结构体,指针,函数指针
- 函数结构数组输入cin问题