对于不返回 void 的 C++ 函数,是否必须使用 return 语句?

2023-12-01

我的 Herb Schildt 关于 C++ 的书说:“...在 C++ 中,如果一个函数被声明为返回一个值,那么它must返回一个值。”但是,如果我编写一个具有非 void 返回类型的函数并且不返回任何内容,编译器会发出警告而不是错误:“控制到达非 void 函数的末尾。”

我使用 gcc (MinGW) 并设置了 -pedantic 标志。


§6.6.3/2:

从函数末尾流出相当于没有值的返回;这会导致返回值函数中出现未定义的行为。

所以这取决于你对强制性的定义。你have到?不。但是如果您希望您的程序具有明确定义的行为,那么可以。*

*main is an exception, see §3.6.1/5. If control reaches the end of main without a return, it will have the effect of return 0;.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

对于不返回 void 的 C++ 函数,是否必须使用 return 语句? 的相关文章

  • 将运算符 << 添加到 std::vector

    我想添加operator lt lt to std vector
  • Qt - QProcess 不工作

    我尝试启动 Internet Explorer 所以我使用下面的代码 QProcess process new QProcess this QString temp C Program Files Internet Explorer iex
  • Exit() 时是否调用基本对象析构函数?

    我意识到这个问题已经出现过几次 但我试图获得上述问题的明确答案 但我不断遇到相互矛盾的信息 我需要知道的是 当我使用 exit 时 基本类对象是否被破坏 我知道需要删除动态内存 但我的意思更像是 include
  • 强制初始化模板类的静态数据成员

    关于模板类的静态数据成员未初始化存在一些问题 不幸的是 这些都没有能够帮助我解决我的具体问题的答案 我有一个模板类 它有一个静态数据成员 必须为特定类型显式实例化 即必须专门化 如果不是这种情况 使用不同的模板函数应该会导致链接器错误 这是
  • cpp.react库的C++源代码中奇怪的“->* []”表达式

    这是我在文档中找到的 C 片段cpp react 库 https github com schlangster cpp react implicit parallelism auto in D MakeVar 0 auto op1 in g
  • 语音识别编程问题入门

    所以 你们可能都看过 钢铁侠 其中托尼与一个名为贾维斯的人工智能系统进行交互 演示剪辑here http www youtube com watch v Go8zsh1Ev6Y 抱歉 这是广告 我非常熟悉 C C 和 Visual Basi
  • 什么是空终止字符串?

    它与什么不同标准 字符串 http www cplusplus com reference string string 字符串 实际上只是一个数组chars 空终止字符串是指其中包含空字符的字符串 0 标记字符串的结尾 不一定是数组的结尾
  • 在 VS 中运行时如何查看 C# 控制台程序的输出?

    我刚刚编写了一个名为 helloworld 的聪明程序 它是一个 C NET 4 5 控制台应用程序 在扭曲的嵌套逻辑迷宫深处 使用了 Console WriteLine 当我在命令行运行它时 它会运行并且我会看到输出 我可以执行其他命令并
  • 是否使用 C# 数据集? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我对 C 中的数据集概念有点困惑 编码 ASP NET 站点 但这并不重要 在我的阅读中 我了解到它们 本质上 用作我的应用程序和我的
  • 从 C# 使用 Odbc 调用 Oracle 包函数

    我在 Oracle 包中定义了一个函数 CREATE OR REPLACE PACKAGE BODY TESTUSER TESTPKG as FUNCTION testfunc n IN NUMBER RETURN NUMBER as be
  • 在 C# 中为父窗体中的子窗体控件添加事件处理程序

    我有两种形式 一种是带有按钮和文本框的父表单 单击该按钮时 将打开一个对话框 该子窗体又包含一个文本框和一个按钮 现在我想要的是 每当子表单文本框中的文本更改时 父表单文本框中的文本会自动更改 为了获得这个 我所做的是 Form3 f3 n
  • 将二变量 std::function 转换为单变量 std::function

    我有一个函数 它获取两个值 x 和 y 并返回结果 std function lt double double double gt mult double x double y return x y 现在我想得到一个常量 y 的单变量函数
  • Oauth2中如何同时撤销RefreshToken和使AccessToken失效

    我正在使用 Owin Oauth2 授权和资源服务器相同 开发单页面应用程序 AngularJS Net MVC Json Rest API 的身份验证流程 我选择了 Bearer Token 路由而不是传统的 cookie session
  • 将 Lambda 表达式树与 IEnumerable 结合使用

    我一直在尝试了解有关使用 Lamba 表达式树的更多信息 因此我创建了一个简单的示例 这是代码 如果作为 C 程序粘贴到 LINQPad 中 它可以工作 void Main IEnumerable
  • WPF DataGrid / ListView 绑定到数组 mvvm

    我们假设你有 N 个整数的数组 表示行数的整数值 在模型中 该整数绑定到视图中的 ComboBox Q1 如何将数组 或数组的各个项目 绑定到 DataGrid 或 ListView 控件 以便 当您更改 ComboBox 值时 只有那么多
  • Visual Studio 2015 - Web 项目上缺少共享项目参考选项卡

    我从 MSDN 订阅升级到 Visual Studio 2015 因为我非常兴奋地阅读有关共享项目的信息 当我们想要做的只是重用代码时 不再需要在依赖项中管理 21382 个 nuget 包 所以我构建了一个测试共享项目 其中包含一些代码
  • 无法将字符串文字分配给装箱的 std::string 向量

    这是我的类型系统的简化版本 include
  • 为什么空循环使用如此多的处理器时间?

    如果我的代码中有一个空的 while 循环 例如 while true 它将把处理器的使用率提高到大约 25 但是 如果我执行以下操作 while true Sleep 1 它只会使用大约1 那么这是为什么呢 更新 感谢所有精彩的回复 但我
  • 在 System.Type 上使用条件断点时出错

    这是函数 public void Init System Type Type this Type Type BuildFieldAttributes BuildDataColumns FieldAttributes 我在第一行设置了一个断点
  • 是否允许全局静态标识符以单个 _ 开头?

    换句话说 可能static 文件范围 全局变量恰好以一个下划线开头 而不会产生与 C 实现发生名称冲突的可能性 https www gnu org software libc manual html node Reserved Names

随机推荐

  • Python,函数改变值

    所以我在让这个系统正常工作时遇到了麻烦 我不确定我是否提出了正确的问题 但这就是正在发生的事情以及我想要发生的事情 money 1 def Stats print print money str money def gainM money
  • 如何在Jmeter中根据另一个值提取json值

    在 Jmeter 中 我试图从 json 中提取值 这是我收到的 json 响应 Definition key 1124 Id 1743 srcID 3427 pcKey 1 userName abraizada cName JMeter2
  • 使用 JavaScript 解析 XML [重复]

    这个问题在这里已经有答案了 我需要能够使用 JavaScript 解析 XML XML 将位于变量中 我不想使用 jQuery 或其他框架 我看过这个 XML gt jQuery 读取 我从你的猜测最后一个问题在此之前 20 分钟询问 您正
  • 使用tensorflow时Python内核死掉

    我在 Windows 7 操作系统中的 anaconda 4 3 1 64 位 内的 python 3 5 2 下使用tensorflow 仅限 CPU 版本 当我运行以下代码时 python内核死掉了 无法重新启动 出现一些错误 但没有错
  • 将屏幕截图保存为 R Selenium 中的变量

    我正在尝试将 Selenium 的屏幕截图存储到变量中 以便我可以计算出它的高度 library RSelenium library magick server lt remoteDriver remoteServerAddr localh
  • 用 Rust 编写不动点函数

    我刚刚开始 Rust 教程 并以使用递归的此类代码结束 extern crate rand use std io use rand Rng use std cmp Ordering use std str FromStr use std f
  • 基本 CSS 悬停图像交换?

    我是网络开发的超级初学者 我有一个关于尝试 交换 两个图像的问题 我已经编写了 CSS 和标记 但由于某种原因它似乎不起作用 当将鼠标悬停在第一个图像上时 应该交换的第二个图像只是位于页面上第一个图像的顶部 CSS home margin
  • 四舍五入的奇怪之处——“100”有什么特别之处? [复制]

    这个问题在这里已经有答案了 有人对 haskell 中这种奇怪的舍入有解释吗 GHCi 版本 7 2 1 一切看起来都很好 除非我乘以 100 Main gt 1 1 1 1 Main gt 1 1 10 11 0 Main gt 1 1
  • 如何将 HTML 表中的数据插入到 mysql 数据库

    我有一个HTML表格与信息 现在我可以add rows and delete带有使用 javascript 的按钮的行 我还可以使用以下命令直接将信息添加到数据库中Add Rows按钮 然后使用以下命令从数据库中删除数据删除行按钮 但我不想
  • Linq if/else 条件?

    我知道这可能是一个新手问题 有没有办法根据布尔值选择不同的搜索条件 稍后在代码中 我想循环访问该对象 alDisabledPrograms 我知道 if else 不正确 我把它放在那里是为了表明我希望如何处理它 我尝试将其放入更大的 if
  • rijndael 加密 - 仅解密部分字符串

    只有部分字符串被解密 我认为这与我的编码有关 发生的情况如下 string s The brown fox jumped over the green frog string k urieurut string enc EncryptStr
  • 在 Windows Phone 7 上将图像转换为字节数组 没有 System.Drawing Dll 还有其他方法吗?

    Byte result Byte new ImageConverter ConvertTo img1 typeof Byte I cant use Image Converter add Image Class Drawing dll Me
  • 从名称空间生成 UUID?

    尝试根据 2 个唯一字符串生成客户端 ID 这最终应该与服务器中生成的 UUID 相同 来自相同的 Ids 对于 Javascript 它看起来像这样 uuidv5 id1 id2 uuidv5 DNS 似乎找不到在 Swift 上生成它的
  • preg_quote() 的 Ruby 等价物是什么?

    在 PHP 中你需要使用preg quote 转义字符串中在正则表达式中具有特定含义的所有字符 允许 例如 preg match 搜索那些特殊字符 以下代码在 Ruby 中的等价物是什么 The content of this variab
  • 使用数据注释对依赖属性进行自定义模型验证

    从现在开始我已经使用了优秀的流利验证库来验证我的模型类 在网络应用程序中 我将它与jquery 验证插件也可以执行客户端验证 一个缺点是许多验证逻辑在客户端重复 并且不再集中在一个地方 出于这个原因 我正在寻找替代方案 有many例子出来t
  • 使用objective-c(libz.dylib)从pdf中提取文本

    我已在视图控制器类中导入 pdf h 文件并尝试调用 NSString outPutString convertPDF pathToPdfFile 但在构建时它给了我链接器错误 convertPDF refrenced from Scrip
  • 按字母顺序对 Android 应用程序进行排序?

    我有以下代码 packageManager getPackageManager List
  • 为什么 CancellationTokenSource 会挂起应用程序

    这是挂起且永不结束的简单代码段 public static void Main using var cancellationTokenSource new CancellationTokenSource Console CancelKeyP
  • Android - 支持 0 台设备

    我在更新现有应用程序时遇到问题 apk 上传工作正常 但 Google Play 表示支持 0 台设备 我一直在寻找其他一些帖子并尝试修改我的清单 但没有成功 该应用程序是使用 Ionic 框架开发的 目前我已经成功上传了20多个旧版本 然
  • 对于不返回 void 的 C++ 函数,是否必须使用 return 语句?

    我的 Herb Schildt 关于 C 的书说 在 C 中 如果一个函数被声明为返回一个值 那么它must返回一个值 但是 如果我编写一个具有非 void 返回类型的函数并且不返回任何内容 编译器会发出警告而不是错误 控制到达非 void