У меня есть функция getID()
, которая возвращает байт из EEPROM:
byte getID(){
return (byte)EEPROM.read(0x0199);
}
Позже, (в строке 65), я использую эту функцию и побитовое ИЛИ с двоичным значением:
byte out[3] = {getID()|B10000000, B00000001, B00000001};
Serial.write(out,3);
и возвращает "сужающее преобразование из 'int' в 'byte":
file.ino:65:33: warning: narrowing conversion of '(int)(((unsigned char)((int)getID())) | 128)' from 'int' to 'byte {aka unsigned char}' inside { } [-Wnarrowing]
byte out[3] = {(getID())|B10000000, B00000001, B00000001};
Это просто предупреждение, и код работает нормально (я думаю), но почему это сужение конверсии? Я пытался убедиться, что почти все является байтом ...