打印
[其他ST产品]

宏定义有关地址时大小写有区别么?

[复制链接]
72|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
柴库柴库|  楼主 | 2025-3-25 11:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
ui, PA, AG, T3, AD, 定义
#define ADDR_FLASH_PAGE_148   ((uint32_t)0x0804A000)#define ADDR_FLASH_PAGE_149   ((uint32_t)0x0804A800)
如上大写定义地址,会出现上百个警告。
#define ADDR_FLASH_PAGE_148   ((uint32_t)0x0804a000)#define ADDR_FLASH_PAGE_149   ((uint32_t)0x0804a800)
如上小写地址,就没有这些警告
真奇怪

使用特权

评论回复
沙发
stormwind123| | 2025-3-25 11:57 | 只看该作者
如果可能,调整编译器的警告级别或敏感性设置,以减少不必要的警告。

使用特权

评论回复
板凳
stormwind123| | 2025-3-25 11:58 | 只看该作者
统一代码风格避免大小写混用导致的潜在问题。

使用特权

评论回复
地板
laocuo1142| | 2025-3-25 14:23 | 只看该作者
使用编译器提供的预处理输出查看预处理后的代码,检查是否有宏定义冲突。

使用特权

评论回复
5
Wordsworth| | 2025-3-26 08:18 | 只看该作者
你试过别的地址吗?比如 0x0804B000 之类的,看是不是同样的问题?

使用特权

评论回复
6
Bblythe| | 2025-3-26 08:20 | 只看该作者
感觉像是编译器在解析时对大写和小写地址有不同的处理逻辑,这真是个奇怪的坑。

使用特权

评论回复
7
Pulitzer| | 2025-3-26 08:20 | 只看该作者
这要是个 Bug,那也太隐蔽了,换个版本的编译器看看会不会好点?

使用特权

评论回复
8
Uriah| | 2025-3-26 08:21 | 只看该作者
这个问题如果搞不明白,可以试着手动转换大小写,看看编译器的警告信息会不会变化。

使用特权

评论回复
9
Clyde011| | 2025-3-26 08:22 | 只看该作者
不管啥原因,这都太诡异了,真的很想知道具体的警告内容,能贴出来看看吗?

使用特权

评论回复
10
公羊子丹| | 2025-3-26 08:23 | 只看该作者
这也太奇怪了吧,理论上大写小写的地址值应该是一样的,编译器居然会区分?

使用特权

评论回复
11
周半梅| | 2025-3-26 08:24 | 只看该作者
你用的是什么编译器?有没有试过换个编译器看看是不是一样的情况?

使用特权

评论回复
12
帛灿灿| | 2025-3-26 08:25 | 只看该作者
这个警告具体是啥?是不是编译器对大写格式的地址做了额外的检查?

使用特权

评论回复
13
童雨竹| | 2025-3-26 08:26 | 只看该作者
可能是某个编译选项在作怪,试试换个编译优化等级看看会不会还有警告。

使用特权

评论回复
14
万图| | 2025-3-26 08:26 | 只看该作者
这是不是和 CubeIDE 或者某个 ST 提供的库有关?有些库对格式可能有特殊要求。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

8

主题

8

帖子

0

粉丝