Remark[Pa091]: operator operates on value promoted to int |
![]() |
Добавил(а) microsin |
Remark[Pa091]: operator operates on value promoted to int (with possibly unexpected result) C:\путь_до_исходного_кода\модуль.c номер_строки Это предупреждение довольно важное, которое говорит о том, что оператор работает со значением, у которого возможно неожиданно для программиста поменялся тип. Пример такого кода: unsigned char var1 = 0x14; unsigned char var2 = 0x76; //Действия, которые возможно меняют var1 или var2
// ...
if (var1 & ~var2) { //какие-нибудь действия } В этом коде оператор инверсии ~ считает, что его операнд будет целым числом со знаком. В результате var2 будет преобразовано в из 8-битного числа в 32-битное. Если это действительно именно то, что хотите, то можете убрать это предупреждение компилятора с помощью явного указания преобразования типа: if (var1 & ~(unsigned int)var2) { //какие-нибудь действия } После этого предупреждение Pa091 исчезнет. |