从哪里可以得到const常量所在的地址?

2019-07-14 16:15发布

小弟最近好郁闷,在51里面不存在这个问题,在STM32(IAR)编译时出错了
const  u8  a;
u8 *addr=a;                   //此处提示错误
printf("address=%x",addr);

51里面直接&a 地址就出来了,M3里面怎么得到a的地址都不行。各位有啥好办法没

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
14条回答
werywer
1楼-- · 2019-07-15 03:20
楼主是取址符没加啊,51直接 &a,32也一样是直接 &a 就可以了
const u8 a;
u8 *addr = &a;
printf("address=%x",addr);




musicalboy
2楼-- · 2019-07-15 08:05

不行,你们说的都不对,在51 keil里面可以 在STM32 IAR中 CONST变量与51的code要求不同
会提示
Error[Pe144]: a value of type "u16 const *" cannot be used to initialize an entity of type "u16 *" C:UsersAdministratorDesktop新板实验SOFT-0817Usermain.c 16


ROSE1017
3楼-- · 2019-07-15 11:27
u8 *addr=a; 改成这样试试 u8 const *addr  = a;或者 const u8 *addr = a;
成长的小师弟
4楼-- · 2019-07-15 14:37
这个还真不知道,是不是固定的flash段
blueshine
5楼-- · 2019-07-15 20:22
 精彩回答 2  元偷偷看……
新星之火12138
6楼-- · 2019-07-15 21:05
你的回答完全正确。类型检查很严格,不能把地址复制给变量,必须强制转换成同类型的

一周热门 更多>