指针用法-指针解引用

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

{

uint16_t txbuf[4] = {0}, rxbuf[4] = {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 就是给快递箱贴标签的过程
相关推荐
悠哉悠哉愿意4 天前
【单片机学习笔记】串口、超声波、NE555的同时使用
笔记·单片机·学习
Lester_11014 天前
STM32霍尔传感器输入口设置为复用功能输入口时,还能用GPIO函数直接读取IO的状态吗
stm32·单片机·嵌入式硬件·电机控制
三佛科技-187366133974 天前
120W小体积碳化硅电源方案(LP8841SC极简方案12V10A/24V5A输出)
单片机·嵌入式硬件
z20348315204 天前
STM32F103系列单片机定时器介绍(二)
stm32·单片机·嵌入式硬件
Alaso_shuang5 天前
STM32 核心输入、输出模式
stm32·单片机·嵌入式硬件
2501_918126915 天前
stm32死锁是怎么实现的
stm32·单片机·嵌入式硬件·学习·个人开发
z20348315205 天前
STM32F103系列单片机定时器介绍(一)
stm32·单片机
星马梦缘5 天前
驱动层开发——蜂鸣器驱动
stm32·单片机·嵌入式硬件·hal·驱动
小刘爱玩单片机5 天前
【stm32简单外设篇】- 测速传感器模块(光电)
c语言·stm32·单片机·嵌入式硬件
hateregiste5 天前
嵌入式软件开发中常见知识点问答集锦!
c语言·单片机·嵌入式软件