C 中的返回值
Return value in C++
本文关键字:返回值 更新时间:2023-10-16
我与C 中的以下输出相混淆
int add()
{
int c = 2+3;
}
int main()
{
int x = add();
cout << x;
return 0;
}
此打印5.即使我们不编写返回语句。如何在C 中进行管理。请帮助。
这是ub。您感到困惑的是正确的 - 这可能有一天有效,而下一步可以失败。不要依靠不确定的行为。
如果您想知道为什么它有效,那是因为参数&amp;返回值将传递在称为堆栈的数据结构上(通常 - 有时在同一寄存器中传递)。同样,大多数实现都将同样的堆栈用于当地人。因此,add
中的int
将位于与预期的返回值(通过您的特定实现)相同的位置,并且当您的int
破坏时,您的实现不会使内存无效。但是它仍然被破坏,它仍然是UB,并且可能会在任何一秒钟内破裂。
如评论所写,您可能会打开警告以避免这种错误。
相关文章:
- 从python中调用C++函数并获取返回值
- 为什么模板类中的对象不能返回值
- 返回值优化:显式移动还是隐式
- lock_guard是否保护返回值
- 调用CreateProcess()并获取字符串的返回值
- 如何使 windows 命令提示符在C++可执行文件上显示返回值?
- 编译器警告:执行到达值返回函数的末尾而不返回值
- 查找 GCD:并非所有控制路径都返回值
- 在 Arduino 上使用 sscanf 会导致与 const char * 不匹配,并且返回值始终相同,尽管输入值不同
- 将返回值存储在函数指针数组的指针中是如何工作的?
- 如何从 std::thread 返回值
- 将返回值从 exe 传递到 bat,并将其传递给 C# 中的进程
- 方法错误"not all control paths return a value"和方法不返回值
- 如何读取 C++ SAFEARRAY**,该 SAFEARRAY** 是 COM 互操作的结果,其中 C# 返回值为
- 对fread的返回值感到困惑
- 程序不向函数返回值
- 如何在另一个函数中使用返回值作为参数?
- 如何使用 uint64_t 键类型从 std::map<int, std::string> 返回值?
- 使用 std::p air 进行返回值优化
- C++输出参数与返回值