首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Microchip XC8,奇怪的信号警告

Microchip XC8,奇怪的信号警告
EN

Stack Overflow用户
提问于 2017-09-06 17:00:55
回答 1查看 236关注 0票数 2

我正在使用微芯片XC8,我有点糊涂了。我有这个代码:

代码语言:javascript
复制
void fastBinaryToBCD(unsigned short int n, unsigned char mem){
// AppNote www.cypress.com/file/42131
unsigned char d4, d3, d2, d1, d0, q;    // d4-d0 - decimal numbers

d0 = n & 0xF;
d1 = (n>>4u) & 0xF;
d2 = (n>>8u) & 0xF;
d3 = (n>>12u) & 0xF;
d0 = 6u * (d3 + d2 + d1) + d0; //<------------warning
q = d0 / 10u;
d0 = d0 % 10u;
d1 = q + 9u*d3 + 5u*d2 + d1;
//...
}

我收到一个警告:

代码语言:javascript
复制
warning: (373) implicit signed to unsigned conversion

我发现所有的字面符号都是缺省的,所以我把所有的u都写上了。它适用于任何地方,除了我指出的那一行。同样不会产生非警告结果的是:

代码语言:javascript
复制
d0 = (unsinged char)(6u * (d3 + d2 + d1) + d0);

警告仍然存在。

这条线是怎么回事?:D

诚挚的问候!

EN

回答 1

Stack Overflow用户

发布于 2018-07-05 14:42:58

某些情况下,xc8在警告方面有点棘手。文字0x0F已签名,因此请尝试:

代码语言:javascript
复制
d0 = n & 0xFu;
d1 = (n>>4u) & 0xFu;
d2 = (n>>8u) & 0xFu;
d3 = (n>>12u) & 0xFu;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46070928

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档