Сообщение об ошибке «Контроль может достигнуть конца непустой функции» - PullRequest
1 голос
/ 11 июля 2020

Я хочу написать пользовательскую функцию bool в C

//declare function
bool newjpg(BYTE buffer[]); 


//code of a function that check if it is a start of new jpeg, return true is conditions are met.
bool newjpg(BYTE buffer[])
    {
      if(buffer[0] == 0xff && buffer[1] == 0xd8 && buffer[2] == 0xff && (buffer[3] & 0xf0) == 0xe0)
      return true;
    }

сообщение об ошибке:

элемент управления может достичь конца непустой функции

1 Ответ

3 голосов
/ 11 июля 2020

Вам не хватает оператора return, если условие в if не выполняется. Вы можете добавить его явно:

bool newjpg(BYTE buffer[])
{
    if (buffer[0] == 0xff && buffer[1] == 0xd8 && buffer[2] == 0xff && (buffer[3] & 0xf0) == 0xe0)
    {
        return true;
    }
    return false;
} 

Или, что более элегантно, просто вернуть условное выражение:

bool newjpg(BYTE buffer[])
{
    return (buffer[0] == 0xff && buffer[1] == 0xd8 && buffer[2] == 0xff && (buffer[3] & 0xf0) == 0xe0);
} 
...