【求助】函数指针和结构体

手速极快 手速极快 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
结构体成员是u8,结构体指针,函数指针。调用函数指针的时候,另外两个成员地址会被改变,代码如下。第一次发贴有什么没做好的地方请见谅,谢谢了。

1.结构体原型和初始化:
typedef struct
{
uint8_t enableCRC; //crc校验使能
UartBuff* buff; //串口接收缓冲数据

void (*Send)(uint8_t* ,uint16_t ); //串口发送函数
}UartPort;
UartPort uart2={false , &uart2Buff , Uart2SendStr};

2.Uart2SendStr原型:
void Uart2SendStr(uint8_t *pstr,uint16_t strlen)
{
uint16_t i;

for(i=0;i<strlen;i++)
Uart2SendByte(pstr[i]);
}

3.函数调用:
void debug(UartPort* uart)
{
...
uart->Send("123",3);
...
}

函数调用前测试,另外两个成员地址正常,调用后地址变成0x3300,0x0031。

...全文

相关推荐

详解C语言结构体中的函数指针

主要介绍了详解C语言结构体中的函数指针,文中对函数指针的基本概念也有讲解,需要的朋友可以参考下

weixin_38609732

单片机-结构体函数指针使用方法

概述        C语言结构体对函数指针封装示例(面向对象思想写法) 1、示例: #include int i, j; struct DATE{ int year; char month; char data; char hour; char min; char sec; }; struct DATE date; struct str_func { int a; int b; void (*myPrintf)(void); void (*init_value)(void); void (*date_f

weixin_38713009

关于在 C 语言结构体中使用函数指针的问题

结构体是 C 语言中一个非常重要的自定义数据类型,它描述了一系列相同类型或不同类型数据构成的数据集合。但是在 C 语言的结构体成员却不能是函数,针对这一问题,本文分析探讨了将函数指针作为结构体成员的理论和方法。通过在结构体中定义函数指针类型的成员,从而实现了在结构体中使用函数的目的。

registor892

STM32结构体与函数指针[代码]

本文深入解析了STM32开发中C语言结构体与函数指针的核心概念与应用。主要内容包括:1. 结构体基础概念与内存操作,详细介绍了函数指针类型定义、包含函数指针的结构体设计及嵌套结构体指针的应用;2. 结构体赋值的5种核心方式,涵盖同类型变量直接赋值、指针赋值、数组关联等场景;3. 函数指针与结构体的深度结合,阐述函数指针本质、调用流程及回调函数应用;4. 指针与数组操作的底层原理,包括结构体指针形参、数组数据解析及指针数组区别。文章通过大量代码示例展示了在嵌入式开发中如何高效使用这些特性,特别强调了内存管理、类型匹配和防御性编程等实践要点。

jupyter5notebook

c代码-C结构体03:函数指针

c代码-C结构体03:函数指针

weixin_38624183
评论 9
收藏 已收藏
分享
返回顶部
手速极快
C语言 70,039 成员 243,237 内容