c 程序必须要从main函数开始执行么?
来源:互联网 发布:新时代股票交易软件 编辑:程序博客网 时间:2024/04/30 05:46
这是在面试中被问到的一个问题,回答了是。这问题第一感觉答案就是否定的,一时也没想出来理由只能回答了是。当时太紧张了,其实回想一下汇编语言就该想到程序的入口地址是可以指定的,c语言编译器默认以main作为入口地址。
网上查阅后,发现了 __attribute__ 这个关键字,它可以设置函数属性,变量属性,类型属性。
参考:http://www.cnblogs.com/Anker/p/3462363.html
看下面的例子:
// gcc 编译器#include<stdio.h>__attribute__((constructor)) void before_main(){ printf("%s\n",__FUNCTION__);}__attribute__((destructor)) void after_main(){ printf("%s\n",__FUNCTION__);}int main(){ printf("%s\n",__FUNCTION__); return 0;}
可以看到上面的程序并不是从main函数开始执行的。constructor 设置在main前面执行,destructor 设置在main之后执行。
1 0
- c 程序必须要从main函数开始执行么?
- c程序从main函数开始执行?
- 读“为什么c程序要从main函数开始执行”
- c语言程序总是从main函数开始执行吗?
- 为什么C程序一定要从main开始执行???
- 为什么C程序一定要从main开始执行???
- linux c/c++程序是否都是从main函数开始?
- C语言中总是从main函数开始执行函数吗?
- 为什么c语言从main函数开始
- C++ 程序不一定从 main 处开始执行
- C程序main函数执行原理
- [ Python ] python 从哪开始执行 之 main 函数
- [ Python ] python 从哪开始执行 之 main 函数
- python 从哪开始执行 之 main 函数
- 程序是从main主函数开始运行吗?
- 程序是从main开始执行,最后main返回就结束了吗?
- iOS 从main函数开始
- main函数开始前执行函数
- 深入理解按位异或运算符
- ids for this class must be manually assigned before calling save()
- extjs 文本框后加一个按钮或 文字
- C/C++---static函数,static成员函数,static变量,static成员变量 再来理一理
- 转自: http://blog.csdn.net/xiaxiaorui2003/article/details/3838631
- c 程序必须要从main函数开始执行么?
- 重新敲一遍代码,胜过拷贝粘贴
- 【SSH】Hibernate关联映射
- concurrent 包
- 毕业设计3-caffe配置手记
- C++枚举系统磁盘信息
- 下载及安装navicat for mysql unbuntu版
- 機器學習基石 (Machine Learning Foundations) 作业1 Q15-17的C++实现
- C++ dynamic_cast static_cast const_cast reinterpret_cast