指针用法-指针解引用

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 就是给快递箱贴标签的过程
相关推荐
不悔哥3 天前
开源OV-Watch:怎么做一个智能手表
单片机·开源·嵌入式
XiHongShi20163 天前
STM32F407 RTC定时器例程,建议保存
stm32·单片机·学习
深圳老胡3 天前
STM32F407 控制 L6470 步进电机驱动 —— 控制过程简介
笔记·stm32·单片机·嵌入式硬件·代码规范
女神下凡3 天前
嵌入式设计的各种存储芯片的硬件/软件设计规范,非常全面。
arm开发·单片机·嵌入式硬件
梅梅9663 天前
一款mipi转lvds的lcd调试(LT8912B)
单片机·计算机外设·电脑·显示器·pd芯片
开发笔记-阿牛3 天前
蓝牙音乐灯拆解,又一次拆到蓝牙音乐灯芯片CK6865L
人工智能·单片机·嵌入式硬件·音视频·音频
CHENKONG_CK3 天前
破解制鞋打磨痛点:RFID赋能去毛刺工序自动化升级
网络·单片机·嵌入式硬件·网络协议·tcp/ip
三佛科技-187366133973 天前
128KB~512KB Flash车规级MCU选型指南(FT32A072 / FT32A103 系列)
单片机·嵌入式硬件
Brilliantwxx3 天前
【STM32】 SPI Flash 驱动开发实战:阻塞模式驱动 W25Q64(含工程代码)
开发语言·stm32·单片机·嵌入式硬件
纳祥科技3 天前
拆机拆到芯片级:ARC功放机里的NX7026、NX8420、NX6805
单片机·音视频·智能音箱