Я пишу код, который сравнивает 2 байта, которые представляют целые числа. Я хочу посмотреть, если байт R с + -10 от G. Проблема, с которой я столкнулся с кодом, заключается в сравнении в if-statment в конце. Байты никогда не выходят за пределы диапазона, даже когда они должны. Я уверен, что проблема заключается в том, как я добавляю / вычитаю error_range, но я не знаю другого способа сделать это.
Сначала я подумал о преобразовании байтов в целые числа, но я не могу найти никакой помощи с этим в Интернете. Если это сработает лучше, чем то, что я делаю здесь, пожалуйста, скажите мне, как это сделать.
Любая помощь приветствуется!
const char ERROR_RANGE = 0x1010; //warning: overflow in implicit constant conversion
char R, G; /2 separate bytes
char buffer; //enough space for 1 byte
image = fopen(fileName,"r"); //open file
fread(&buffer, 1, 1, image); //read 1 byte
memcpy (&R,&buffer,1); //store it as R
fread(&buffer, 1, 1, image); //read 1 byte
memcpy (&G,&buffer,1); //store it as G
fclose(image);
if((R >= (G + ERROR_RANGE)) && (R <= (G - ERROR_RANGE)))
{
printf("Outside of range!\n");
}
Спасибо.