C语言中如何在main函数开始前执行函数
来源:互联网 发布:java方法重写作用 编辑:程序博客网 时间:2024/05/22 01:58
在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
可以在main前后调用多个函数,在gcc下使用attribute声明多个constructor、destructor,vc下在before、after数组中添加多个函数指针。
- 语言中如何在main函数开始前执行函数
- C语言中如何在main函数开始前执行函数
- C语言中如何在main函数开始前执行函数
- C语言中如何在main函数开始前执行函数
- C语言中如何在main函数开始前执行函数
- C语言中如何在main函数开始前执行函数
- C语言中怎么在main函数开始前执行函数
- C语言在main前调用函数
- main函数开始前执行函数
- c语言中在main函数之前会执行什么
- C语言中总是从main函数开始执行函数吗?
- c语言程序总是从main函数开始执行吗?
- main函数在c语言中演变
- c程序从main函数开始执行?
- c语言开始执行函数
- (面试题)main函数在开始前或结束后是否会执行其他的代码?
- 为什么c语言从main函数开始
- C++中如何在main()函数之前执行操作?
- 让Android设备永不锁屏
- 验证 (XHTML 1.0 Transitional): 属性“width”被视为已过时。建议使用较新的构造
- 封装梯形类的对象,其中关于体梯形周长以及梯形判断有局限,真心求解!
- Java反射机制学习
- 输出7和7的倍数,还有包含7的数字
- C语言中如何在main函数开始前执行函数
- EncryptionHelper 用户密码加密
- 网址收藏&oxyplot正太分布图
- Cisco 1200 AP中 AP所扮演的角色
- JAVA为运算符使用方法
- 流年轻弹、离殇一曲
- Trie树遍历的加速
- dsp代码级优化
- 测试