指针用法-指针解引用

void E52142_WriteRegister(e52142No_e no, e52142RegAddr_e addr, uint16_t data)

{

uint16_t txbuf4 = {0}, rxbuf4 = {0};

e52142WriteRegReq_t *txdat = (e52142WriteRegReq_t *)txbuf;

// e52142WriteRegRsp_t *rxdat = (e52142WriteRegRsp_t *)rxbuf;

txdat->addr = addr;

txdat->cmd = Cmd_WriteReg;

txdat->data = data;

txdat->crc = CRC_16_CCITT(txbuf, 2);

if(no == E52142No_1)

{

Dmt1If_SpiData(txbuf, rxbuf, 4);

}

else if(no == E52142No_2)

{

Dmt2If_SpiData(txbuf, rxbuf, 4);

}

else

{}

}

⚠️ 重要提示 :在C语言中,通过指针访问结构体成员(如 txdat->addr)本身就是对该指针的"调用"或"使用"。这与函数调用不同,但属于同等重要的运行时操作。


🧠 为什么会产生"未使用"的错觉?

常见误解分析

误解类型 真实情况
"必须像函数那样调用" 错误!指针解引用+成员访问已是标准用法
"没有出现在表达式右侧" 错误!txdat->addr 就是有效的左值表达式
"没有传递给其他函数" 不需要!此处是直接操作内存的关键步骤

📌 类比理解

想象你有一个快递箱(txbuf),而 txdat 是箱子上的智能标签

  • 当你说 "标签·收件人 = 张三" 时,就是在使用这个标签
  • 同样,txdat->addr = addr 就是给快递箱贴标签的过程
相关推荐
wuyk55534 分钟前
21. 嵌入式面试避坑指南:sizeof 是关键字,不是函数!
c语言·开发语言·stm32·单片机·嵌入式硬件
FreakStudio12 天前
W55MH32L-EVB 上手测评:硬件 TCP/IP 加持的以太网单片机,MicroPython 零门槛开发
python·单片机·嵌入式·大学生·面向对象·并行计算·电子diy·电子计算机
✎ ﹏梦醒͜ღ҉繁华落℘17 天前
单片机基础知识---stm32单片机的优先级
stm32·单片机·mongodb
zd84510150017 天前
RS485 总线详解
单片机·嵌入式硬件
✎ ﹏梦醒͜ღ҉繁华落℘17 天前
编程基础 --高内聚,低耦合
c语言·单片机
科芯创展17 天前
1A,1MHz,30VIN,XZ4115,降压恒流LED驱动芯片
单片机·嵌入式硬件
集芯微电科技有限公司17 天前
四通道2A输出集成功率电感降压模块专为紧凑型方案设计
人工智能·单片机·嵌入式硬件·生成对抗网络·计算机外设
踏着七彩祥云的小丑17 天前
嵌入式测试学习第 37 天:异常场景测试:断电、拔插、干扰、非法指令
单片机·嵌入式硬件·学习
意法半导体STM3217 天前
【官方原创】如何为STM32CubeMX2配置Visual Studio Code配置方案
vscode·stm32·单片机·嵌入式硬件·策略模式·stm32cubemx·嵌入式开发
雾削木17 天前
B语言经典教程现代化重构
java·前端·stm32·单片机·嵌入式硬件