[C语言知识]return和exit到底有什么区别?

前言

💖💖💖欢迎来到我的博客,我是anmory💖💖💖
又和大家见面了
欢迎来到C语言知识系列
用通俗易懂的语言让编程语言不再困难
先来自我推荐一波
个人网站欢迎访问以及捐款
推荐阅读
如何低成本搭建个人网站
专栏:动画详解leetcode算法题
C语言知识
玉桂狗飞天


return的使用场景

  • return是一个控制流语句,用于从函数返回到调用它的函数。它可以带有一个表达式,这个表达式的值将作为函数的返回值 。
  • return用于主函数时,它会导致整个程序的退出,并返回一个值给操作系统。这通常用于表示程序正常结束或遇到错误 。
  • 在子函数中使用return则仅仅是结束该函数的执行,并返回控制权给调用者 。

在主函数中,你可以使用return函数来确保程序正常退出


exit的使用场景

  • exit是一个标准库函数,定义在stdlib.h头文件中。它用于立即终止当前进程,并返回一个状态码给操作系统 。
  • exit(0)表示程序正常结束,而exit(1)表示程序异常退出。状态码可以被父进程通过WIF(Wait for child)等系统调用捕获 。
  • exit不仅终止当前进程,还会关闭所有打开的文件描述符,并可能向父进程发送一个信号,如SIGCHLD 。

在程序的任意地方,你都可以使用exit函数来退出程序
包括函数外的任意地方


return和exit的区别

准确来说,return函数用于结束一个函数,而exit用于结束一个程序
在main函数中,returnexit的效果相同
当你需要关闭系统资源的时候,选择return
当你需要关闭整个程序的时候,选择exit


为什么返回0就是正常退出?

  • 历史惯例:从早期的Unix系统开始,传统上就将0定义为成功或无错误的标志。当一个命令行程序成功执行并结束时,它会返回0给shell,这样shell或其他调用者就可以根据这个返回值判断程序是否执行成功。
  • 标准化:这一惯例已被POSIX标准和其他编程规范所采纳,因此成为了一个跨平台的标准做法。在大多数编程环境中,包括C语言,0作为返回值意味着程序按预期完成了任务,没有遇到任何错误。

总结

💖💖💖非常感谢各位的支持💖💖💖
我们共同进步
本系列持续更新,关注我,带你完全理解C语言
下期再见
玉桂狗飞天

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/11723.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

brpc之acceptorhandler

int Server::StartInternal if (_am NULL) { _am BuildAcceptor(); //解析协议的初始化,初始化handlers数组 BuildAcceptor函数的核心代码: // process_request is required at server side handler.parse protocols[i].parse; handler.process …

Spring @Repository 注解

Spring 的项目严重依赖注解。 Repository 注解 在Spring2.0之前的版本中,Repository注解可以标记在任何的类上,用来表明该类是用来执行与数据库相关的操作(即dao对象),并支持自动处理数据库操作产生的异常 在Spring2.5版本中,引…

Today At Apple 2024.04.20 ipad 绘画 图片管理

文章目录 recreate 软件 绘画图片管理 官网: https://www.apple.com/today/Apple 亚洲第一大商店:Apple 静安零售店现已在上海开幕如下预约课程:下载 Apple Store(不是app store),点击课程预约笔记&#xf…

【算法】高精度(string实现)

模板来自:【C/string】 大数高精度运算模板 加法 string add(string a, string b) {string ans;/* 翻转两个数字字符串,使得后面的for循环从个位开始相加 */reverse(a.begin(), a.end());reverse(b.begin(), b.end());/* 初次补0,保证最高位…

GEVernova推出GEV新能源平台,引领新能源未来

近日,全球领先的能源设备制造和服务公司 GE Vernova 宣布推出 GEV 新能源平台,这是一个将金融、科技和产业深度融合的全新投资平台。GEV 新能源平台旨在为用户提供一站式可持续新能源投资解决方案,助力全球新能源转型和可持续发展。 新能源已…

基于MetaGPT的智能体理论与实践-Task01

Task01: MetaGPT环境配置 学习教程:https://github.com/datawhalechina/hugging-multi-agent 1 环境准备 1.1 安装python3.9 通过:python3 --version, 查看此python版本为3.10.3 1.2 下载MetaGPT 开始,借用清华镜像,拉取…

acw165. 小猫爬山-DFS剪枝与优化

题目 思路 暴搜顺序:从前往后依次枚举每只小猫,枚举当前这只小猫应该放在哪一辆车上,递归完n层之后,就可以知道所有方案中的最少车辆总数剪枝的情况: 优化搜索顺序:大部分情况下,应该优先搜索分…

交易复盘-20240513

仅用于记录当天的市场情况,用于统计交易策略的适用情况,以便程序回测 短线核心:不参与任何级别的调整,采用龙空龙模式 一支股票 10%的时候可以操作, 90%的时间适合空仓等待 双成药业 (1)|[9:30]|[3566万]|0.34 中通客车 (1)|[9:43]|[7678万]|0.15 嘉华股份 (2)|[9:30]|[36…

李飞飞团队关于2024年人工智能发展报告总结 (Artificial Intelligence Index Report)

目录 1 10大核心信息2 AI研究和发展2.1 核心要点2.2 核心对比信息2.3 模型是否会用尽数据2.4 基础模型发展2.5 训练模型成本 3 技术性能3.1 核心要点3.2 重要模型发布情况3.3 AI表现情况3.4 多学科、高难度评估集 (MMMU & GPQA & ARC)3.5 Agents3.6 RLHF & RLAIF3.…

山西教育杂志山西教育杂志社山西教育编辑部2024年第4期目录

课题研究 小学语文随堂小练笔策略研究 陈立固; 3-4 儿童戏剧工作坊载体下小学语文戏剧课堂的建构 郭黎明; 5-6《山西教育》投稿:cn7kantougao163.com 文化生态视域下小学英语教学的传统文化融入 周慧娟; 7-8 基于“主题语境”的初中英语课堂教学研究…

公式识别软件免费的有哪些?简单好用的有三款

公式识别软件免费的有哪些?在数字化时代,公式识别软件已经成为科研、教育等领域不可或缺的工具。这些软件能够准确地将图像中的公式转化为可编辑的文本格式,极大地提高了工作效率。为了帮助大家轻松应对公式识别的挑战,今天本文就…

想要成为项目经理?先掌握这24条职场生存法则!

以下是项目经理的24条职场经验,这些经验涵盖了项目管理的各个方面,希望能对项目经理或有意成为项目经理的人有所启发。 1、明确目标:项目成功的关键在于明确的目标。在项目启动之初,确保所有利益相关者对项目目标有清晰、共同的…

milvus插入数据时,明明不超长,但总是报长度错误?

在处理插入milvus数据时,设置了字段长度为512. 明明考虑了预留,插入的数据中没有这么长的,但还是会有报错 类似:MilvusException: (code0, messagethe length (564) of 78th string exceeds max length (512) 查找max(len(x) for …

绘制一个单级放大电路原理图过程,保姆级教程

新手在学习pads的使用最好最快的方法就是实际上手去画原理图,画PCB图,在这个过程中,就能够更快速得掌握PADS软件的使用。 本篇就是对于实际画原理图过程的一个记录,手把手教学,如果有纰漏或者有更好的一些技巧&#xf…

c++ 线程锁的种类

在C中,为了同步线程并防止数据竞争,可以使用各种线程锁(也称为互斥体或同步原语)。这些锁提供了对共享资源的独占访问,确保在任何时候只有一个线程可以访问被保护的资源。以下是一些C线程锁的种类: std::m…

AIGC文生图 flask base64传递多张图片api

flask后端实现: base64.b64encode from flask import Flask, Response, request,send_file from PIL import Image import torch import io from diffusers import PixArtAlphaPipeline import zipfile import base64 import requests import

SpringBoot学习记录(3)

SpringBoot监听机制 SpringBoot的监听机制,其实是对java提供的事件监听机制的封装 java监听机制 java中的事件监听机制定义了以下几个角色 事件:Event,继承java.util.EventObject类的对象 事件源:Source,任意对象Ob…

【联合索引】最左匹配原则是什么?

什么是联合索引 联合索引(Composite Index)是一种索引类型,它由多个列组成。 MySQL的联合索引(也称为复合索引)是建立在多个字段上的索引。这种索引类型允许数据库在查询时同时考虑多个列的值,从而提高查询…

Linux系统监控命令详解

Linux系统监控命令详解 一、引言 在Linux系统中,系统监控是保障系统稳定运行、提高资源利用率、预防故障发生的重要手段。本文将详细解析Linux系统监控命令,探讨如何更有效地进行系统监控。 二、Linux系统监控概述 Linux系统监控主要包括对CPU、内存…

怎么下载抖音直播视频 怎么解析直播间链接的视频录制保存

尊敬的读者们,你们好!今天我们将探讨一个非常实用的技巧——如何下载直播视频。随着网络技术的发展,直播视频已经成为我们日常生活中不可或缺的一部分。无论是观看比赛、欣赏音乐会还是探索新的美食,直播视频都为我们提供了更直观…