news 2026/6/26 2:25:43

简单理解:用指针时,什么时候加*,什么时候不加*

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
简单理解:用指针时,什么时候加*,什么时候不加*

函数只需要 “哪个 ADC” 的地址(指针),而XT_ADCx本身就是指针,直接传就行;只有当你要 “修改 / 访问 ADC 内部的寄存器(结构体内容)” 时,才需要加*(或用->简写)

用 “最直白的规则 + 对比例子”,帮你彻底分清 “加不加*”:

一、核心规则(记死这 2 条,不会错)

操作目的XT_ADCx的处理加不加*
告诉函数 “操作哪个 ADC”(传地址)直接用XT_ADCx不加*
操作 ADC 内部的寄存器(读 / 写)解引用指针*(或->

二、对比例子(结合你熟悉的代码)

1. 不加*的场景:传地址(告诉函数 “哪个 ADC”)

ADC_ClockCmd(XT_ADCx, ENABLE);

  • 目的:告诉函数 “给 XT_ADCx 绑定的这个 ADC 开时钟”;
  • 函数只需要 “ADC 的地址” 来识别硬件,不需要碰 ADC 内部的寄存器;
  • XT_ADCx本身就是指针(存着地址),所以直接传,不加*
2. 加*(或->)的场景:操作寄存器(改 / 读内容)

之前代码里操作 ADC 寄存器的写法,本质都是加了*解引用:

// 场景1:开启 ADC(操作控制寄存器 CR) XT_ADCx->CR |= (1 << 0); // -> 是 (*XT_ADCx).CR 的简写,隐含了 * // 等价于:(*XT_ADCx).CR |= (1 << 0); (直接加 * 解引用) // 场景2:读采样结果(访问数据寄存器 DR) uint16_t adc_val = XT_ADCx->DR; // 同样隐含 * // 等价于:uint16_t adc_val = (*XT_ADCx).DR; // 场景3:等转换完成(查状态寄存器 SR) while (!(XT_ADCx->SR & (1 << 1))); // 还是隐含 *
  • 目的:修改 / 读取 ADC 内部的寄存器(结构体里的内容);
  • 必须通过*(或->)解引用指针,才能找到 ADC 内部的寄存器,所以要加*

三、再用 “钥匙类比” 巩固

  • XT_ADCx= 汽车钥匙(存着汽车地址);
  • 不加*:把钥匙直接给别人(函数),告诉别人 “去操作这把钥匙对应的车”(比如给车通电 = 开时钟);
  • *(或->):用钥匙打开车门,操作车里的设备(比如拧点火开关 = 开启 ADC,看仪表盘 = 读采样结果)。

四、一句话最终总结

ADC_ClockCmd(XT_ADCx, ENABLE);不加*,是因为函数只需要 “钥匙”(指针 / 地址)来识别 ADC;只有当你要 “用钥匙打开 ADC,操作里面的寄存器” 时,才需要加*(或->)。

以后遇到类似场景,直接套规则:

  • 传地址给函数 → 不加*
  • 操作指针指向的内容(寄存器 / 变量) → 加*(或->)。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/25 22:48:20

PyTorch-CUDA-v2.7镜像中如何安装额外的Python包

PyTorch-CUDA-v2.7 镜像中如何安装额外的 Python 包 在深度学习项目开发中&#xff0c;一个稳定、可复现的运行环境往往比模型本身更早成为瓶颈。尤其是当团队成员各自搭建环境时&#xff0c;CUDA 版本不匹配、PyTorch 编译选项差异、甚至 Python 小版本不同都可能导致“在我机…

作者头像 李华
网站建设 2026/6/13 20:42:15

谁说英文更精准?汉字的细腻,才是语言界的“像素级”表达!

谁说英文更精准&#xff1f;汉字的细腻&#xff0c;才是语言界的“像素级”表达&#xff01;一、生活场景&#xff1a;汉字的 “像素级” 精准碾压英文&#xff08;一&#xff09;病痛描述&#xff1a;中文让痛感 “有迹可循”当我们身体不适前往医院时&#xff0c;语言在准确传…

作者头像 李华
网站建设 2026/6/20 7:48:27

学工平台怎么买才是真划算?看懂这几点,不再花冤枉钱

✅作者简介&#xff1a;合肥自友科技 &#x1f4cc;核心产品&#xff1a;智慧校园平台(包括教工管理、学工管理、教务管理、考务管理、后勤管理、德育管理、资产管理、公寓管理、实习管理、就业管理、离校管理、科研平台、档案管理、学生平台等26个子平台) 。公司所有人员均有多…

作者头像 李华
网站建设 2026/6/19 14:25:06

如何用以太网温湿度变送器构建数据中心动环监控系统?

数据中心动环监控&#xff08;DCIM&#xff09;对温湿度的实时性、准确性和告警响应速度要求极高。传统串口设备难以满足大规模部署需求&#xff0c;而以太网温湿度变送器因其原生网络能力&#xff0c;成为现代IDC环境监控的首选方案。技术实现上&#xff0c;以太网温湿度变送器…

作者头像 李华
网站建设 2026/6/15 8:22:15

Turfjs+Cesium.js:三维地球中的空间分析实战

在 WebGIS 领域&#xff0c;二维地图已无法满足复杂的空间分析需求 —— 三维地球&#xff08;3D Globe&#xff09;能直观展示地理要素的空间位置、高度关系和地形特征。Cesium.js 是目前最主流的开源三维地球开发框架&#xff0c;支持高精度地形、影像和矢量要素渲染&#xf…

作者头像 李华
网站建设 2026/6/18 16:58:27

PyTorch-CUDA-v2.7镜像在云服务器上的最佳实践

PyTorch-CUDA-v2.7镜像在云服务器上的最佳实践 在如今的深度学习开发中&#xff0c;你是否也经历过这样的场景&#xff1a;刚租好一台带 A100 的云服务器&#xff0c;满心欢喜地准备跑实验&#xff0c;结果 pip install torch 卡了半小时&#xff0c;最后还报错“CUDA version …

作者头像 李华