我正在为 PIC18F2420 使用带有 xc8 1.35 编译器的 MPLABX 3.20,我有两个我不明白的奇怪警告:
这是生成警告的源代码之一
9 void write(Pin _Pin, char value)
10 {
11 if( value == 1)
12 {
13 (*((_Pin.Reg)+ 5*sizeof(char))) |=(1<<_Pin.Bit);
14 }
15 else
16 {
17 (*((_Pin.Reg)+ 5*sizeof(char))) &= ~(1<<_Pin.Bit);
18 }
19 }
这是我使用的结构引脚:
typedef unsigned char *SFR;
typedef struct
{
SFR Reg;
unsigned char Bit;
SFR ReadReg;
}Pin;
此代码用于提供一种使用引脚的简单方法
我有以下警告:
Pin.c:13:警告:(373)隐式有符号到无符号转换
Pin.c:17:警告:(373)隐式有符号到无符号转换
...
Pin.c:17:警告:(752)转换为更短的数据类型
这两个值都是 unsigned char 那么为什么我会有这些警告?