在Keil5中写程序:定义 i 为char类型
//iic读字节,用keil5编译
uint8_t i2c_ReadByte(void){
u8 value;
for(char i=7;i>=0;i--){
EEPROM_I2C_SCL_1();
i2c_Delay();
if(EEPROM_I2C_SDA_READ())
value|=(u8)(1<<i);
else
value&=(u8)(~(1<<i));
i2c_Delay();
EEPROM_I2C_SCL_0();
i2c_Delay();
}
return value;
}
编译后出现警告
(156): warning: #186-D: pointless comparison of unsigned integer with zero
说明这是个死循环,i为unsigned char类型
在keil5中,char默认为unsigned char