硬汉嵌入式论坛

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

[Embedded Studio] 请教一个关于宏定义的问题

[复制链接]

79

主题

191

回帖

428

积分

高级会员

积分
428
发表于 2022-8-4 20:44:08 来自手机 | 显示全部楼层 |阅读模式
#define     A       false

#if A == true
    xxxxxxxxxxxxxx;
#else
    xxxxxxxxx;
#endif

以上条件宏定义为什么总是A==true起作用?宏定义能不能这么用?
回复

使用道具 举报

78

主题

694

回帖

928

积分

金牌会员

积分
928
发表于 2022-8-4 21:10:03 | 显示全部楼层
这个看编译器支不支持bool吧,用1和0就好,基本编译器都支持
回复

使用道具 举报

59

主题

288

回帖

465

积分

高级会员

积分
465
发表于 2022-8-4 21:25:14 | 显示全部楼层
应为你定义了A
回复

使用道具 举报

79

主题

191

回帖

428

积分

高级会员

积分
428
 楼主| 发表于 2022-8-4 22:15:24 来自手机 | 显示全部楼层
用1和0也试过,一样的
回复

使用道具 举报

210

主题

1045

回帖

1685

积分

至尊会员

More we do, more we can do.

积分
1685
发表于 2022-8-4 23:07:16 | 显示全部楼层
我每天都这么用,你这不行是因为你输入的"#"是全角的
回复

使用道具 举报

79

主题

191

回帖

428

积分

高级会员

积分
428
 楼主| 发表于 2022-8-5 09:53:22 | 显示全部楼层
1.png

我用的是开发环境是ES,不知道为什么,
这段宏代码始终是POSITION_IN_RESISTOR_DIVIDER_IS_R_1 == true在启用,
没办法,只好改成下面这样才行:

#define POSITION_IN_RESISTOR_DIVIDER_IS_R_1           0

#if POSITION_IN_RESISTOR_DIVIDER_IS_R_1
   xxxxxxx;
#else
   xxxxxxx;
#endif

难道宏只能判断真假,不能用“==”符号判断?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107217
QQ
发表于 2022-8-5 10:05:23 | 显示全部楼层
天马行空 发表于 2022-8-5 09:53
我用的是开发环境是ES,不知道为什么,
这段宏代码始终是POSITION_IN_RESISTOR_DIVIDER_IS_R_1 == true ...

没问题,你用的那个版本
image.png


回复

使用道具 举报

79

主题

191

回帖

428

积分

高级会员

积分
428
 楼主| 发表于 2022-8-5 10:33:26 | 显示全部楼层
谢谢版主回复,我用的是6.22a版本
微信截图_20220805103114.png
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107217
QQ
发表于 2022-8-5 11:26:37 | 显示全部楼层
我用的6.20

image.png
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-21 16:36 , Processed in 0.309681 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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