从 void 函数返回[关闭]

2023-12-23

从函数返回哪种更正确的方法:

void function() {
  // blah some code
}

OR

void function() {
  // blah some code
  return;
}

第二种方式的理由:

  1. 它更清楚地表达了开发者的意图。
  2. 它有助于在预编译时检测函数结束:

假设您有这样的场景 - 您有一堆函数,并且必须在这些函数的末尾注入一些代码。但由于某些原因,您不想/或无法修改如此大量的函数。对此你能做什么?Return & macro发挥作用,例如:

#include<stdio.h>

#define MAX_LINES 1000
#define XCAT(a,b) a##b
#define CAT(a,b) XCAT(a,b)
#define return returns[__LINE__] = 1;\
        if (returns[__LINE__])\
           {printf("End of function on %d line.\n",__LINE__);}\
        int CAT(tmp,__LINE__); \
        if ((CAT(tmp,__LINE__)=returns[__LINE__], returns[__LINE__] = 0, CAT(tmp,__LINE__)))\
              return

static int returns[MAX_LINES];


void function1(void) {
    return;
}

void function2(void) {
    return;
}

int main()
{
    function1();
    function2();

    return 0;
}

两者都不是更正确的,所以请选择。空的return;提供声明以允许return in a void从末端以外的其他地方运行。我相信没有其他原因。

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

从 void 函数返回[关闭] 的相关文章

  • Exit() 时是否调用基本对象析构函数?

    我意识到这个问题已经出现过几次 但我试图获得上述问题的明确答案 但我不断遇到相互矛盾的信息 我需要知道的是 当我使用 exit 时 基本类对象是否被破坏 我知道需要删除动态内存 但我的意思更像是 include
  • 在 CPP 类中将 C 函数声明为友元

    我需要在 C 函数中使用类的私有变量 我正在做这样的事情 class Helper private std string name public std getName return name friend extern C void in
  • jquery 中的函数返回未定义[重复]

    这个问题在这里已经有答案了 我在 jquery 中调用的函数返回未定义 我检查了该函数 当我对其进行调试时 它返回正确的数据 function addToPlaylist component type add to pl value pl
  • 按扩展名过滤搜索文件返回太多结果

    我正在开发一个 C 控制台应用程序 它必须管理 Windows 操作系统上的文件 我需要获取具有特定扩展名的文件名 列表 我找到了很多解决方案 最建议的是以下一种 HANDLE hFind WIN32 FIND DATA data hFin
  • MVC3中设置下拉列表中的所选项目

    我必须为视图中的下拉列表设置所选项目 但它不起作用 View div class editor label Html LabelFor model gt model Gender div div class editor field Htm
  • 当事件button.click发生时,如何获取按钮名称/标签?

    我以编程方式制作按钮并将它们添加到堆栈面板中 以便每次用户导航到页面时按钮都会发生变化 我正在尝试做这样的事情 当我单击创建的按钮时 它将获取按钮的标签并转到正确的页面 但是 我无法使用 RoutedEventHandler 访问按钮元素
  • 语音识别编程问题入门

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

    我遇到了和这里同样的问题致命错误 C1034 windows h 未设置包含路径 https stackoverflow com questions 931652 fatal error c1034 windows h no include
  • 已发布的 .Net Core 应用程序警告安装 .Net Core,但它已安装

    我制作了一个 WPF 和控制台应用程序 供某人在我无法访问的私人服务器上使用 我使用 Visual Studio 2019 的内置 发布向导 来创建依赖于框架的单文件应用程序 当该人打开 WPF 应用程序时 他们会看到标准警告 他们单击 是
  • 从 C# 使用 Odbc 调用 Oracle 包函数

    我在 Oracle 包中定义了一个函数 CREATE OR REPLACE PACKAGE BODY TESTUSER TESTPKG as FUNCTION testfunc n IN NUMBER RETURN NUMBER as be
  • 不可变类与结构

    以下是类与 C 中的结构的唯一区别 如果我错了 请纠正我 类变量是引用 而结构变量是值 因此在赋值和参数传递中复制结构的整个值 类变量是存储在堆栈上的指针 指向堆上的内存 而结构变量作为值存储在堆上 假设我有一个不可变的结构 该结构的字段一
  • 在 C 中使用枚举而不是 #defines 作为编译时常量是否合理?

    在 C 工作了一段时间后 我将回到 C 开发领域 我已经意识到 在不必要的时候应该避免使用宏 以便让编译器在编译时为您做更多的工作 因此 对于常量值 在 C 中我将使用静态 const 变量或 C 11 枚举类来实现良好的作用域 在 C 中
  • C++ - 多维数组

    处理多维数组时 是否可以为数组分配两种不同的变量类型 例如你有数组int example i j 有可能吗i and j是两种完全不同的变量类型 例如 int 和 string 听起来您正在寻找 std vector
  • 如何在 C# 中创建异步方法?

    我读过的每一篇博客文章都会告诉您如何在 C 中使用异步方法 但由于某些奇怪的原因 从未解释如何构建您自己的异步方法来使用 所以我现在有这段代码使用我的方法 private async void button1 Click object se
  • 模板类的模板构造函数的 C++ 显式模板特化

    我有一个像这样的课程 template
  • 如何解压 msgpack 文件?

    我正在将 msgpack 编码的数据写入文件 在编写时 我只是使用 C API 的 fbuffer 如 我为示例删除了所有错误处理 FILE fp fopen filename ab msgpack packer pk msgpack pa
  • 了解 Lambda 表达式和委托 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我已经尝试解决这个问题很长一段时间了 阅读在线博客和文章 但到目前为止还没有成功 什么是代表 什么是 Lambda 表达式 两者的优点
  • 在 Win32 控制台应用程序中设置光标位置

    如何在 Win32 控制台应用程序中设置光标位置 最好 我想避免制作句柄并使用 Windows 控制台功能 我花了整个早上沿着那条黑暗的小巷跑 它产生的问题比它解决的问题还要多 我似乎记得当我在大学时使用 stdio 做这件事相对简单 但我
  • 我可以使用 lambda 函数或 std::function 对象来代替函数指针吗?

    我有一个需要使用的库 它定义了以下内容 typedef void CallbackFunction const int i 并且有一个注册回调的函数 如下所示 void registerCallback CallbackFunction p
  • MySqlConnectionStringBuilder - 使用证书连接

    我正在尝试连接到 Google Cloud Sql 这是一个 MySql 解决方案 我能够使用 MySql Workbench 进行连接 我如何使用 C 连接MySqlConnectionStringBuilder 我找不到提供这三个证书的

随机推荐

  • 更改数据库排序规则不会更新数据库中 varchar/text 字段的排序规则 (MS SQL)

    我更改了数据库的排序规则 更改之前的所有 text varchar 列均设置为数据库默认值 当对数据库排序规则进行更改时 我希望设置为数据库默认值的列保持数据库默认值 因此保持链接到新的数据库排序规则 但是 我注意到这些列实际上已更改为专门
  • Ubuntu 12.04 x64 上的 dbConnect 与 R 3.0 --as.integer(from) 中的错误:无法将类型“S4”强制为“整数”类型的向量

    刚刚更新到 R 3 0 并更新了所有软件包 包括 DBI 令我惊讶的是 我经常使用的一个脚本停止工作了 我无法使用 dbConnect 连接到 MySQL 数据库 代码脚本立即执行 因此只需几行即可重现问题 gt require RMySQ
  • 在 WooCommerce 中应用特定优惠券时添加免费产品

    当通过以下方式使用特定优惠券时 我可以将产品添加到购物车woocommerce applied coupon钩子和add to cart 功能 add action woocommerce applied coupon apply prod
  • 在 C++ 中设置离散分布

    经过几个小时的努力解决这个问题后 我找不到任何对我的错误的解释 我希望计算机选择 0 到 120 含 之间的随机数 加权 我有一个数组 interval 它保存从 0 到 120 含 的数字 我有另一个数组 weights 它保存选择数组中
  • 在 Windows 8 Metro 应用程序中使用动态磁贴 [重复]

    这个问题在这里已经有答案了 可能的重复 无法在 Windows 8 应用程序内创建动态磁贴 https stackoverflow com questions 10279417 unable to create live tile insi
  • r 检查字符串是否包含特殊字符

    我正在检查字符串是否包含任何特殊字符 这就是我所拥有的 但它不起作用 if grepl punct val 因此 如果有人能告诉我我缺少什么 那将会很有帮助 特殊字符 正如 thelatemail 在评论中指出的 您可以使用 grepl p
  • 执行即使我注销也会运行的脚本

    所以 我有一个长时间运行的脚本 大约几天 说execute sh我计划在我拥有用户帐户的服务器上执行 现在 我想执行这个脚本 以便它永远运行 即使我注销或与服务器断开连接 我怎么做 谢谢 你有几个选择 最基本的是使用nohup nohup
  • DirectoryStream.Filter 示例,用于列出基于特定日期/时间的文件

    我正在尝试调查一个DirecoryStream Filter例如newDirectoryStream我可以在其中列出目录下的所有文件 及其所有子目录 例如 超过 60 天的 DirectoryStream
  • 如何在 Raphael.js / IE 中“固定”模式?

    我正在创建一个小工具来说明偏光镜片的优点 基本上 用户将在令人眼花缭乱的场景 容器 DIV 的 CSS 背景 上拖动镜头 Raphael js 路径 并 透视 镜头 这是js代码 var rsr Raphael playmask 720 5
  • 关于数组大小计算[重复]

    这个问题在这里已经有答案了 可能的重复 有人可以解释一下这个给我数组大小的模板代码吗 https stackoverflow com questions 437150 can someone explain this template co
  • 在 React/Express 应用程序的生产中代理 api 请求

    我正在使用独立的存储库 后端和前端 开发一个 MERN stack 项目 在发展环境中 我使用 代理 将服务器 API 与 React 连接 并且运行良好 package json in react proxy http localhost
  • vim 使用当前行作为参考点进行搜索和替换

    有没有办法使用当前行作为参考来指定搜索和替换范围 我可以使用明确的行号指定范围 例如 5 15s foo bar g 仅在第 5 行到第 15 行上进行搜索和替换 如何指定 从当前行到当前行下方 或上方 10 行 之类的范围 您可以使用 对
  • 使用 spring 将枚举的值注入到属性中

    我有一个类似于下面的枚举 public enum MyEnum ABC some string DEF some string GHI another string String value private MyEnum String va
  • 删除 WPF 中 ListView 上的鼠标悬停效果

    我怎样才能摆脱淡蓝色鼠标悬停对我的影响ListView 当我触摸屏幕时 会出现一个浅蓝色选择器 并在我上下滚动时停留在屏幕中间 但以深蓝色突出显示的所选项目不会改变 我猜这是鼠标悬停效果 因为当我使用鼠标时会出现同样的效果 如何解决 我使用
  • 为什么这个会被锁?循环遍历所有行,对重复项执行函数,删除重复行

    当我一次咬掉几百行时 代码可以工作 但当我尝试在 10 000 行上运行它时 代码总是挂在中间的某个地方 代码的作用 查找 A 列中的重复条目 将两行之间的 c d 和 e 列中的值相加 然后删除原始行 有人能想出一种更稳定的方法来做到这一
  • .net ORM 比较 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 为什么 display:none 不隐藏 Struts 2 标签,如

    我想知道为什么div标签无法隐藏Struts2标签 我正在使用div它应该隐藏在负载上 并且onChange我正在调用 jQuery 来切换div tag
  • 如何保持 psobject 有序?

    我有以下脚本 它从另一个脚本获取对象并将其转换为 pscustomobject script1 ps1 ViewConnection cinput OutVariable xprtOut Format Table Wrap converti
  • “Where”子句中的动态表达式 - Linq to SQL

    我是 LINQ 的新手 所以我希望这不是一个愚蠢的问题 我有一个在数据网格中显示大量内容的表格 我希望用户能够通过使用网格上方的一些组合框 如搜索栏 来过滤网格 我创建了一个方法 它获取组合框中的文本 并将其放置在 Where 子句中 pu
  • 从 void 函数返回[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 从函数返回哪种更正确的方法 void function blah some code OR void function blah some co