gpt4 book ai didi

c++ - 为什么具有返回类型但不返回任何内容的函数不会编译失败?

转载 作者:行者123 更新时间:2023-12-02 10:49:12 26 4
gpt4 key购买 nike

考虑以下示例,使用 g++ 5.4(仅)编译:

#include <iostream>

int foo()
{
std::cout << "foo" << std::endl;
}

int main()
{
std::cout << foo();
return 0;
}
foo()没有任何 return语句,代码编译并且函数将返回一个未知值,当返回类型是指针时也会发生同样的情况 - 这可能会导致段错误。

为什么编译这样的函数时没有错误/警告?

是因为 C++ 标准还是实现它的问题?

最佳答案

语言定义说这会产生未定义的行为。那是因为有时无法诊断它。警告您此类事情的编译器偶尔会出错。我添加了一个不需要的 return 语句来使一个编译器静音,只是让另一个提示该 return 语句为“无法访问的代码”

关于c++ - 为什么具有返回类型但不返回任何内容的函数不会编译失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61368175/

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