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
相关产品推荐
相关产品推荐

