指针用法-指针解引用

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 就是给快递箱贴标签的过程
相关推荐
G***技1 分钟前
杰和IB3-272:以低功耗高性能打造新一代工业智能交互核心
单片机·嵌入式硬件·物联网
czhaii1 小时前
STC AI8052U单片机特点
单片机
MAR-Sky1 小时前
keil5中数据的不同定义和单片机(以stc8为例)里的对应关系(idata,xdata,data,code)
单片机·嵌入式硬件
项目題供诗3 小时前
51单片机入门(八)
单片机·嵌入式硬件·51单片机
羽获飞4 小时前
从零开始学嵌入式之STM32——9.STM32的时钟系统
stm32·单片机·嵌入式硬件
来自晴朗的明天5 小时前
13、NMOS 电源防反接电路
单片机·嵌入式硬件·硬件工程
芯岭技术6 小时前
PY32MD310单片机:高性能、低功耗的32位电机控制微控制器
单片机·嵌入式硬件
小龙报7 小时前
【51单片机】深度解析 51 串口 UART:原理、配置、收发实现与工程化应用全总结
c语言·开发语言·c++·stm32·单片机·嵌入式硬件·51单片机
Lester_110114 小时前
STM32 高级定时器PWM互补输出模式--如果没有死区,突然关闭PWM有产生瞬间导通的可能吗
stm32·单片机·嵌入式硬件·嵌入式软件
小李独爱秋16 小时前
“bootmgr is compressed”错误:根源、笔记本与台式机差异化解决方案深度指南
运维·stm32·单片机·嵌入式硬件·文件系统·电脑故障