我的编程空间,编程开发者的网络收藏夹
学习永远不晚

C语言return,exit,abort的区别

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

C语言return,exit,abort的区别

一般情况下,在C语言中退出一个程序用return,如果在main函数中,return在清理局部对象之后,会调用exit函数。

return相比,exit并不会销毁局部对象,而是会销毁所有静态与全局对象、清空缓冲区,关闭IO通道。终止前则会调用atexit()所定义的函数。

atexit也在stdlib.h中,其声明式为

int atexit(void (*func)(void))

当程序中止时,就会调用函数指针func

//atexit.c
#include <stdio.h>
#include <stdlib.h>

void funcA (){
   printf("call from atexit\n");
}

int main (){
   atexit(funcA);   //将funcA注册为中止函数
   printf("exiting...\n");
   return 0;
}

测试结果如下:

>gcc atexit.c
>a.exe
exiting...
call from atexit

如果希望什么都不做就退出程序,可以使用abort(),将abort();插入到return 0前面,则其输出结果如下,并不会调用funcA

>a.exe
exiting...

到此这篇关于C语言return, exit, abort的区别的文章就介绍到这了,更多相关C语言return, exit, abort区别内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

C语言return,exit,abort的区别

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

C语言中return、exit和abort的区别是什么

这篇文章将为大家详细讲解有关C语言中return、exit和abort的区别是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。一般情况下,在C语言中退出一个程序用return,如果在mai
2023-06-22

C语言中的return true和return false有什么区别

在C语言中,return true和return false是用于表示一个函数的返回值是真(true)或假(false)。它们的区别在于数据类型和取值范围。- return true:true在C语言中通常表示真,它是一个整数常量。在C语言
2023-08-19

Shell中exit和return的区别讲解

1.exit命令 exit命令是Shell内建命令,用于退出当前Shell进程。使用格式如下:exit []可以指定退出状态n,n的取值范围是0-255,一般情况下,0表示正常退出,非零表示异常退出。如果状态码是0-255之外的数值,
2022-06-04

Shell中exit和return的区别有哪些

这篇文章主要介绍了Shell中exit和return的区别有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1.exit命令exit命令是Shell内建命令,用于退出当前S
2023-06-09

c++和c语言的区别

区别:1、c++支持类、继承、多态等oop概念,而c语言本身并不直接支持oop;2、c++相对于c语言来说,引入了更多的新特性,例如函数重载、运算符重载、模板、异常处理等;3、c++标准库提供了丰富的功能,而c语言的标准库相对较小,功能较为
c++和c语言的区别
2024-03-14

c语言中\和/的区别

c 语言中,反斜杠 '\' 用于转义特殊字符,而正斜杠 '/' 用于表示除法运算符。此外,反斜杠还可用于注释、分隔文件路径和拼接字符常量。C 语言中 \ 和 / 的区别直接回答:C 语言中,'\'(反斜杠)和 '/'(正斜杠)是两种不同的
c语言中\和/的区别
2024-04-28

c语言中=和==的区别

c语言中 "=" 赋值,而 "==" 比较。 "=" 将右边的值赋给左边的变量,而 "==" 比较两个表达式的值,相等返回真,否则返回假。C语言中 = 和 == 的区别C语言中的赋值运算符 "=" 和比较运算符 "==" 是两个不同的运算
c语言中=和==的区别
2024-05-02

c语言中/与\的区别

c 语言中 / 和 \ 的区别:/:除法运算符,用于两个操作数的除法运算,返回商或余数。\:反斜杠转义字符,用于转义特殊字符、指定文本字符、终止预处理指令,并在 windows 系统中作为路径分隔符。C 语言中 / 与 \ 的区别C 语言
c语言中/与\的区别
2024-05-02

c语言中|和||的区别

c语言中“|”和“||”的区别在于运算类型:“|”执行按位或运算,只有两个值都为真才为真;“||”执行逻辑或运算,只要有一个或两个值都为真就为真。C语言中的“|”和“||”区别C语言中,“|”和“||”都是逻辑运算符,它们用于对布尔表达式
c语言中|和||的区别
2024-05-02

c语言中/和%的区别

c 语言中 '/' 和 '%' 运算符的不同:'/' 是除法运算符,用于计算商。'%' 是求模运算符,用于计算余数。除数必须为正整数,被除数可以为正负整数。c语言中 / 和 % 的区别在 C 语言中,'/' 和 '%' 是两个不同的运算符
c语言中/和%的区别
2024-04-27

c语言中\与%的区别

c语言中 \ 和 % 的区别在于:\ 用作转义字符,代表特殊字符(例如换行符),而 %` 用作格式化输出,指定输出变量值或格式的格式说明符。c语言中\与%的区别c语言中,\ 和 % 都是转义字符,用于在字符串中表示特殊字符。以下是对
c语言中\与%的区别
2024-05-02

c语言中/与%的区别

c 语言中的 / 和 % 运算符用于不同类型的除法运算:/ 执行浮点除法,返回浮点数作为结果。% 执行整数取模运算,返回整数作为余数。C 语言中的 / 与 % 的区别/ 和 % 是 C 语言中的两个运算符,用于执行不同类型的除法运算。/
c语言中/与%的区别
2024-04-28

c语言中,=和==的区别

c 语言中 "=" 赋值运算符用于将值分配给变量,而 "==" 相等比较运算符用于比较两个表达式的值是否相等,返回 true 表示相等,false 表示不相等。C 语言中 "=" 和 "==" 的区别在 C 语言中,"=" 和 "=="
c语言中,=和==的区别
2024-04-28

c语言中c和s的区别

"c" 和 "s" 是 c 语言的格式说明符,用于数据读写。"c" 针对单个字符,格式为 %c;"s" 针对以 '\0' 结尾的字符串,格式为 %s。C 和 S 在 C 语言中的区别"c" 和 "s" 在 C 语言中表示 格式说明符,用于
c语言中c和s的区别
2024-05-12

c语言和c++的区别在哪

c++kquote>主要区别:c++ 面向对象,支持类、继承和多态;c 为过程化语言。c++ 支持数据抽象,隐藏数据和方法;c 中数据和操作公开。c++ 自动内存管理,对象超出作用域时自动释放内存;c 需要手动管理内存。c++ 支持泛型编程
c语言和c++的区别在哪
2024-04-04

c语言中s和c的区别

字符串常量 (s) 和字符常量 (c) 的区别在于:1. s 用双引号表示字符串,而 c 用单引号表示单个字符;2. s 存储在只读内存中,而 c 存储在可读写内存中;3. s 可以比较,而 c 只能与其他 c 比较。C 语言中 s 和 c
c语言中s和c的区别
2024-04-30

c#语言和c的区别在哪

c# 和 c 语言的不同之处在于:类型系统:c# 类型安全,c 类型不安全。垃圾收集:c# 自动垃圾收集,c 需要手动管理内存。安全性:c# 有内置安全机制,c 没有。语法:c# 类似 java,c 语法更简洁。用途:c# 用于游戏、商业应
c#语言和c的区别在哪
2024-04-04

c语言中的%和/的区别

在 c 语言中,% 为取模运算符,返回两个操作数相除的余数;/ 为除法运算符,返回两个操作数相除的结果。取模运算返回余数(int 型),而除法运算返回商(浮点型);两个操作数皆为整数时,/ 会进行整数除法,可能导致精度丢失;浮点型操作数时,
c语言中的%和/的区别
2024-04-28

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录