硬汉嵌入式论坛

 找回密码
 立即注册
查看: 169|回复: 3
收起左侧

[STM32H7] 宏定义的嵌套问题

[复制链接]

2

主题

6

回帖

12

积分

新手上路

积分
12
发表于 5 天前 | 显示全部楼层 |阅读模式
#define xxx(value)  \
    do {            \
    #if 1           \
        x=value;    \
    #else           \
        x=value;    \
    #endif          \
    } while (0)


这样定义 为啥不行?有没有大佬给个解决方案。

回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117512
QQ
发表于 5 天前 | 显示全部楼层
#if预处理放在外面试试,预处理要优先处理

#if 1
#define xxx(value) do { x=value; } while(0)
#else
#define xxx(value) do { x=value; } while(0)
#endif
回复

使用道具 举报

2

主题

6

回帖

12

积分

新手上路

积分
12
 楼主| 发表于 5 天前 | 显示全部楼层
应该是个解决的方案 但是 如果#if的组合太多的话 就不行了
回复

使用道具 举报

2

主题

6

回帖

12

积分

新手上路

积分
12
 楼主| 发表于 5 天前 | 显示全部楼层
eric2013 发表于 2025-8-7 12:11
#if预处理放在外面试试,预处理要优先处理

#if 1

如果 #if的条件组合太多 就很麻烦了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-8-12 02:58 , Processed in 0.040543 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表