gpt4 book ai didi

c++ - 返回 int 但未显式返回任何内容的函数的返回值是多少。例如输出

转载 作者:行者123 更新时间:2023-11-30 00:39:44 25 4
gpt4 key购买 nike

int fun()
{
printf("\ncrap");
}


void main()
{
printf("\n return value of fun %d", fun());
}

请您解释一下堆栈如何为返回值分配内存以及堆栈如何在这里工作。

最佳答案

有趣 触发未定义的行为

始终在启用所有编译器警告的情况下进行编译。这应该会警告您,您正在犯同样的错误。

您的 main 也触发了未定义的行为,因为 C++ 标准要求只有一个名为 main 的函数并且它返回 int。但是,作为一种特殊情况,您可以在(已更正的)main 函数中省略 return 语句。

如您所想,“堆栈”不是 C++ 语言的一部分。但这无关紧要;标准说返回的对象是在调用者的范围内构造的,这就是您需要知道的全部内容。

(实际上,一个未返回的 int 可能会像 int 类型的未初始化变量一样结束,但是标准说函数调用已经触发了未定义的行为,而不仅仅是稍后的读取访问。)

关于c++ - 返回 int 但未显式返回任何内容的函数的返回值是多少。例如输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8064051/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com