语言中如何在main函数开始前执行函数
在gcc中,可以使用attribute关键字,声明constructor和destructor,代码如下:
- #include <stdio.h>
- __attribute((constructor)) void before_main()
- {
- printf("%s/n",__FUNCTION__);
- }
- __attribute((destructor)) void after_main()
- {
- printf("%s/n",__FUNCTION__);
- }
- int main( int argc, char ** argv )
- {
- printf("%s/n",__FUNCTION__);
- return 0;
- }
vc不支持attribute关键字,在vc中,可以使用如下方法:
- #include <stdio.h>
- int main( int argc, char ** argv )
- {
- printf("%s/n",__FUNCTION__);
- return 0;
- }
- int before_main()
- {
- printf("%s/n",__FUNCTION__);
- return 0;
- }
- int after_main()
- {
- printf("%s/n",__FUNCTION__);
- return 0;
- }
- typedef int func();
- #pragma data_seg(".CRT$XIU")
- static func * before[] = { before_main };
- #pragma data_seg(".CRT$XPU")
- static func * after[] = { after_main };
- #pragma data_seg()
编译执行,上述两段代码的结果均为:
before_main
main
after_main
(vc中可能不支持__FUNCTION__来获得函数名,你可以用另外的方式来获取,比如在befor_main()函数中printf("befor_main()\n");来模拟__FUNCTION__的功能!嘿嘿)
可以在main前后调用多个函数,在gcc下使用attribute声明多个constructor、destructor,vc下在before、after数组中添加多个函数指针。
语言中如何在main函数开始前执行函数相关推荐
- 多玩YY语音的面试题 C++中如何在main 函数之前执行操作
多玩YY语音的面试题:C++中如何在main()函数之前执行操作? 第一反应main()函数是所有函数执行的开始.但是问题是main()函数执行之前如何执行呢? 联想到MFC里面的 C**App类的t ...
- atexit函数的执行顺序_多玩YY语音的面试题:C++中如何在main()函数之前执行操作?...
多玩YY语音的面试题:C++中如何在main()函数之前执行操作? 第一反应main()函数是所有函数执行的开始.但是问题是main()函数执行之前如何执行呢? 联想到MFC里面的 C**App类的t ...
- C语言中的带参宏和带参函数的区别
C语言中的带参宏和带参函数的区别 (1) 带参函数中的形参是变量,因此有类型检查.而带参宏只是简单的字符串替换. (2) 从程序执行的过程来看,带参宏是在预处理阶段被预处理器处理的.而带参函数是在程序 ...
- r语言中的或怎么表示什么不同_R语言中灵活运用if实现根据不同条件执行不同的语句...
原标题:R语言中灵活运用if实现根据不同条件执行不同的语句 在程序语言中,if一般属于一种分支结构,即根据某个条件执行相关的语句,在R中也不例外.同时,if语句与else配合可以运用到多种条件递归判断 ...
- js匿名函数和立即执行函数
js匿名函数和立即执行函数 1. 匿名函数 a)写法 b) 特点 2. 立即执行函数 a) 写法 b) 特点 c) 示例 1. 匿名函数 匿名函数又叫拉姆达函数, 使用前需要先赋值. a)写法 //h ...
- 匿名函数与自执行函数
匿名函数与自执行函数 匿名函数就是指的没有名字的函数,即定义函数对象时不定义函数体名字,但是必须将匿名函数作为表达式赋予一定操作,比如将其作为变量值或者让其自执行,否则这次定义将无意义,解释器也会抛出 ...
- 【JS基础】立即执行函数表达式(自执行函数)
立即执行函数表达式 立即执行函数表达式,大部分人也称为自执行函数. 自执行函数的写法 匿名函数 (function() {console.log(2) })() 具名函数 (function log( ...
- main在c语言中的作用,main函数在C语言中是怎么定义的?有什么作用?
main函数在C语言中是怎么定义的?有什么作用? 更新时间:2019-10-24 13:55 最满意答案 额,main不是程序的最开始啦.拿用glibc的程序来说,C语言执行的过程应该是 _start ...
- c语言中总是从main函数开始,C语言总是从main函数开始执行吗
//-------------------------------------------------------- 本文目录结构 |-提出问题 |-解决问题 |-推荐文章 |-作业 //------ ...
最新文章
- 卷积神经网络原理图文详解
- SpringBoot+Jquery+Jstree实现企业架构管理
- shadowplay要下载java_Java并发程序设计(二)Java并行程序基础
- 简单tarjan》一道裸题(BZOJ1051)(easy)
- Android:日常学习笔记(6)——探究活动(3)
- .NET Core3.1升级.NET5,坑还真不少...
- 【MongoDB 工具篇】MongoDB Compass介绍与简单使用
- PHP中4个包含文件方法的差异
- django启动服务器失败-已解决
- 【Linux】修改Linux操作系统字符集与Oracle数据库一致
- 恒生Pb系统与讯投PB系统、PTrade交易系统比较
- 2022年系统分析师考试大纲
- OneTool多平台助手程序网页源码全解版
- 边框盒子 box-sizing 的 content-box 和 border-box属性
- C语言:输出菱形图案
- CSOL NST1007 V1.0 完整汉化版发布
- java泛型的上界和下界_java泛型中的上界(extend)和下界(super)
- svn强制弹出账号密码对话框
- 你见过的最全面的Python重点(附代码演示)
- 进程间通信有哪几种方式?进程间通信的方法详解
热门文章
- 大型网站技术架构 读书笔记
- VBA在EXCEL中创建图形线条
- 【Android】Android 设置Activity窗体 不显示标题和全屏显示
- C#编写最小化时隐藏为任务栏图标的Window appllication
- Godaddy如何导入导出MSSQL数据库
- python3最好的书籍推荐-推荐几本Python3相关书籍?最好分一下基础、进阶、高级...
- python使用方法-python-tkinter使用方法——转载(一)
- python详细安装教程linux-Linux环境下Python的安装方法
- 2!=5 or 0在python中是否正确-python 中 and or
- python读取excel-Python Pandas读取修改excel操作攻略