编译器错误 C2561

“identifier”:函数必须返回一个值

函数被声明为返回值,但函数定义不包含 return 语句。

此错误可能是由不正确的函数原型引起的:

  1. 如果函数不返回值,则使用返回类型 void 声明函数。

  2. 检查函数的所有可能分支是否返回原型中声明的类型的值。

  3. 包含将返回值存储在 AX 寄存器中的内联汇编例程的 C++ 函数可能需要 return 语句。 将 AX 中的值复制到临时变量并从函数中返回该变量。

以下示例生成 C2561:

// C2561.cpp
int Test(int x) {
   if (x) {
      return;   // C2561
      // try the following line instead
      // return 1;
   }
   return 0;
}

int main() {
   Test(1);
}