c语言模仿自动析构,C语言实现析构器
按照ISO C的规定,一个进程可以注册多大32个函数,这些函数将由exit自动调用。这些函数被称为“终止处理程序”(exit handler),并调用atexit函数来注册这些函数。
#include
/*成功返回0,失败返回非0*/
int atexit(void (*func)(void));
从原型我们可以看到,被注册的函数是一个没有返回值很没有参数的函数,我们可以使用这个特性来实现面向对象的析构函数。
#include
#include
void func(void);
int main() {
int res;
res = atexit(func);
if (res == 0) {
printf("Resgister destory success./n");
exit(0);
} else {
printf("Resgister destory failure./n");
exit(1);
}
}
void func(void) {
printf("Program is exiting.../n");
}
$ gcc atexit.c -o atexit
$ ./atexit
输出:
Resgister destory success.
Program is exiting...
所以可以看到析构函数已经执行了,利用这个方法,我们可以在程序退出的时候自动关闭一些资源句柄,如文件句柄等。
c语言模仿自动析构,C语言实现析构器相关推荐
- 编好c语言网上自动评测,C语言程序自动评测系统的设计与实现
摘要: 随着计算机技术的发展和提高,计算机辅助评价(CAA)已成为当前计算机教育应用的热点研究问题之一.已有的研究成果已能很好的解决客观题测评问题,而主观题的评测问题则仍处于发展阶段.C语言程序设计课 ...
- c语言商店自动销售,c语言商店商品管理系统设计报告与源代码.doc
c语言商店商品管理系统设计报告与源代码.doc 1目录1系统分析21.1课程设计内容21.2系统功能需求分析21.3数据结构设计32系统设计32.1总体设计32.2详细设计42.2.1界面设计42.2 ...
- c语言模拟自动饮料机,C语言--小程序--简单模拟ATM机
原标题:C语言--小程序--简单模拟ATM机 ATM.H #ifndef ATM_h #define ATM_h #include #include #include typedef struct _ ...
- c语言模仿atm源代码,C语言ATM程序模拟
<C语言ATM程序模拟>由会员分享,可在线阅读,更多相关<C语言ATM程序模拟(18页珍藏版)>请在人人文库网上搜索. 1.一. 课题要求1. 当输入给定的卡号和密码(初始卡号 ...
- c语言怎么自动计时,C语言精确计时方法
精确获取时间: QueryPerformanceFrequency() -基本介绍 类型:Win32API 原型:BOOL QueryPerformanceFrequency(LARGE_INTEGE ...
- 【Unity编辑器扩展】语言国际化工具,生成多语言Excel自动翻译并导出多语言表
工具效果如图: 多语言是个非常简单且常用的功能.但是重复工作量大,程序手动把多语言Key配置到多语言表经常会出现错漏,或者几经改版,有些Key已经不用却没有剔除,久而久之造成冗余.这中简单且重复的工作 ...
- Wix 安装部署教程(十六) -- 自动生成多语言文件
Wix 安装部署教程(十六) -- 自动生成多语言文件 原文:Wix 安装部署教程(十六) -- 自动生成多语言文件 因为持续集成需要,所有项目编译完之后生成一个多语言的安装包.之前生成mst文件都是 ...
- 《操作系统》课程设计报告——用JAVA语言模仿实现“吃水果”问题
引言 操作系统是计算机的核心总控软件,是计算机系统的指挥和管理中心,是计算机系统的灵魂.进程管理与文件系统是操作系统都是操作系统的五大重要功能之一.通过模拟操作系统的实现,加深学生对计算机操作系统内核 ...
- Easystructure教程_C语言源代码自动生成流程图
目录 Easystructure教程_C语言源代码自动生成流程图 1. 简介 2. 下载 3. 安装 4. 使用 5. 其他软件推荐 5.1 Mermaid 5.2 Code2flow ** Easy ...
最新文章
- AVR开发 Arduino方法(附四) 参考文献与网址
- 基于pytorch的卷积神经网络量化实现
- AI如何在安防行业更加深入?可从超高清视频监控切入
- mysql temporary_MySQL中的两种临时表
- ThreadLocal是救火队长
- 【Nginx】Nginx配置文件参数/启动参数详解;启动/停止/重新加载配置命令
- Oracle :备份 、还原数据库
- MySQL主从复制原理(原理+实操)
- 在云面前,为何Cisco,Dell和HP都是Loser
- 阿里云服务器怎么配置安全组?
- 人脸识别、活体检测、人脸识别面临的挑战
- 多种隐藏滚动条但是依然可以滚动实现方式
- ImageJ 用户手册——第四部分(ImageJ用户界面)
- KLOOK客路旅行基于Apache Hudi的数据湖实践
- 使用JDK的 keytool 生成JKS,修改查看JKS信息
- 尽量使用notifyAll,而不用notify
- 计算机三级数据库技术——第一章 数据库应用系统开发方法学习笔记
- 手机电脑如何使用OTG连接U盘教程及OTG功能常见问题解答
- 构建之法10,11,12章的读后感
- 2019 计蒜之道 复赛 “星云系统” 贪心