【问题标题】:"Control may reach end of non-void function" error message“控件可能到达非无效函数的末尾”错误消息
【发布时间】:2020-07-10 21:12:08
【问题描述】:

我想用 C 写一个 bool 自定义函数

//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;
    }

错误信息:

控件可能到达非空函数的末尾

【问题讨论】:

  • 如果你的 if 条件为假怎么办?
  • 错误信息有什么不清楚的地方?你不处理你的条件为假的情况。

标签: c compiler-errors boolean


【解决方案1】:

如果不满足 if 中的条件,则您缺少 return 语句。您可以明确添加它:

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);
} 

【讨论】:

  • 十亿次感谢!
猜你喜欢
  • 1970-01-01
  • 2011-10-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-02
  • 2014-11-25
  • 2020-10-31
相关资源
最近更新 更多