typedef struct { uint8_t Data1[2]; uint16_t Data2[10]; }USE_DATA; USE_DATA USE READ; const uint32 addr1 = &READ.Dat1[0]; const uint32 addr2 = &READ.Dat1[1]; keil编译会警告 #1296-D:extended constant initialiser used ; 我需要addr1,addr2定义成uint32用,不能定义为指针. 谁有办法消除这个警告??????????? |
uint32 addr2 = &READ.Dat1[1];
不会有警告,定义了const 就会有,
uint16_t Data2[10];
const uint32 addr1 = (uint32_t)&Dat1[0];
const uint32 addr2 = (uint32_t)&Dat1[1];
不定义成结构体也不会有警告
这是个简单举例,实际上我一个结构体里还包含很多参数
const uint32 addr2 = (uint32)(&READ.Dat1[1]);
使用vs简单测试语法,没问题
我也测试过读写数据,没问题,但是怎么消除keil报警,我工程有好几百个这样报警,看着不爽.
keil编译会警告 #1296-D:extended constant initialiser used ;
评分
查看全部评分
其实应该谢谢你,我没有遇到过这种问题。但是我帮你搜索到了,也涨了知识。
http://infocenter.arm.com/help/i ... c.faqs/ka15182.html
评分
查看全部评分