深入探讨:main函数执行完毕后,是否可能会再执行一段代码?

 更新时间:2013年05月29日 10:47:30   作者:  
本篇文章是对main函数执行完毕后,是否可能会再执行一段代码,进行了详细的分析介绍,需要的朋友参考下
可以使用atexit()函数注册一个函数,代码如下:
复制代码 代码如下:

#include "stdafx.h"
#include <iostream>
using namespace std;
//int _onexit(void (*function)(void)); //这句可以要也可以不要
void f1()
{
 cout << "f1()" << endl;
}
void f2()
{
 cout << "f2()" << endl;
}
void f3()
{
 cout << "f3()" << endl;
}
void f4()
{
 cout << "f4()" << endl;
}
int _tmain(int argc, _TCHAR* argv[])
{
 atexit(f1);
 atexit(f2);
 atexit(f3);
 atexit(f4);
 cout << "main function." << endl;
 return 0;
}

输出结果:
复制代码 代码如下:

main
f4()
f3()
f2()
f1()

注意:atexit函数是按照栈的规则来调用注册的函数,先调用的最后输出,后调用的最先输出。
PS:以上是网上大部分人认为的,还有很多人持有不同意见。在此,保留一定的看法!不足之后,还望指正!

相关文章

  • 浅谈关于C语言中#define的副作用

    浅谈关于C语言中#define的副作用

    这篇文章主要介绍了关于C语言中#define的副作用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03
  • C++检测键盘某键是否按下的方法

    C++检测键盘某键是否按下的方法

    今天小编就为大家分享一篇C++检测键盘某键是否按下的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-07-07
  • 手把手教你如何一眼分辨是C还是C++

    手把手教你如何一眼分辨是C还是C++

    在很大程度上,C++是C的超集,这意味着一个有效的C程序也是一个有效的C++程序,下面这篇文章主要给大家介绍了关于如何一眼分辨是C还是C++的相关资料,需要的朋友可以参考下
    2023-02-02
  • C++中的类型转换static_cast、dynamic_cast、const_cast和reinterpret_cast总结

    C++中的类型转换static_cast、dynamic_cast、const_cast和reinterpret_cas

    这篇文章主要介绍了C++中的类型转换static_cast、dynamic_cast、const_cast和reinterpret_cast总结,需要的朋友可以参考下
    2014-10-10
  • C语言数据结构中约瑟夫环问题探究

    C语言数据结构中约瑟夫环问题探究

    这篇文章主要介绍了C语言数据结构中约瑟夫环问题,总的来说这并不是一道难题,那为什么要拿出这道题介绍?拿出这道题真正想要传达的是解题的思路,以及不断优化探寻最优解的过程。希望通过这道题能给你带来一种解题优化的思路
    2023-01-01
  • C语言例题讲解指针与数组

    C语言例题讲解指针与数组

    在C语言和C++等语言中,数组元素全为指针变量的数组称为指针数组,指针数组中的元素都必须具有相同的存储类型、指向相同数据类型的指针变量。指针数组比较适合用来指向若干个字符串,使字符串处理更加方便、灵活
    2022-07-07
  • C++ STL入门教程(7) multimap、multiset的使用

    C++ STL入门教程(7) multimap、multiset的使用

    这篇文章主要介绍了C++ STL入门教程第七篇,multimap一对多索引,multiset多元集合的使用方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-08-08
  • C++实现日期类(Date类)的方法

    C++实现日期类(Date类)的方法

    下面小编就为大家带来一篇C++实现日期类(Date类)的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-01-01
  • Cocos2d-x学习笔记之CCScene、CCLayer、CCSprite的默认坐标和默认锚点实验

    Cocos2d-x学习笔记之CCScene、CCLayer、CCSprite的默认坐标和默认锚点实验

    这篇文章主要介绍了Cocos2d-x学习笔记之CCScene、CCLayer、CCSprite的默认坐标和默认锚点实验,这是一个非常值得研究的问题,需要的朋友可以参考下
    2014-09-09
  • exit和atexit的区别详细解析

    exit和atexit的区别详细解析

    以下是对exit与atexit的区别进行了详细的分析介绍,需要的朋友可以过来参考下
    2013-09-09

最新评论