没有返回值的整数函数

integer function with no return value

本文关键字:整数 函数 返回值      更新时间:2023-10-16

我正在尝试执行以下代码,因为该函数没有返回值,但它是用整数返回类型定义的。 它是如何运行而没有任何错误的。

#include <stdio.h>
int fn(int a, int b){
  int temp = b;
  a = 2*temp;
  b = a;
}
int main()
{
  int x,y,printval;
  scanf("%d%d",&x,&y);
  printval = fn(x,y);
  printf("%d", printval);
  return 0;
}

我希望输出是错误,但它导致 40(输入:10,20(

你的代码有未定义的行为,这意味着一切皆有可能;你根本不应该依赖它。

[标准返回]/2

(强调我的(

从构造函数、析构函数或具有 cv void返回类型的非协程函数的末尾流出等效于没有操作数的return否则,从 main 或协程 ([dcl.fct.def.coroutine]( 以外的函数末尾流出会导致未定义的行为