You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C语言宏定义中##运算符的作用是什么?ST单片机库相关疑问

关于C宏定义CONCAT(x, y)的解释

这个宏是C预处理器的Token拼接工具,其中##是预处理器专属的拼接运算符,作用是把传入的两个参数直接合并成一个新的标识符。

举几个ST单片机库中常见的使用场景:

  • 调用CONCAT(GPIO, A),预处理器会直接将其替换为GPIOA——这正是ST库里常用的GPIO端口名称;
  • 调用CONCAT(RCC_APB2Periph_, GPIOA),会被替换为RCC_APB2Periph_GPIOA,对应库中外设时钟使能的宏定义。

这类宏的核心作用是简化代码,通过参数拼接批量生成外设相关的标识符,避免重复编写相似的前缀或后缀,让代码更灵活易维护。

内容的提问来源于stack exchange,提问作者sn01

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 06:39:36