C++ startup
发布时间
阅读量:
阅读量
c++ Startup
问题
c++的进入点在哪里?–启动函数,但是可以被gcc设定
什么代码比`main()更早被执行?–启动函数在main前面的函数
什么代码在main()之后被执行?–析构那几个内存空间
内存的heap结构如何?–空闲链表
程序进入点
C++程序的入口点并非主函数,在Linux环境下可以通过-gcc -e选项指定。在该选项作用域内,默认情况下程序的行为相当于自定义模块的功能。值得注意的是,在此配置下,默认情况下主函数也不会被调用。
$ cat entrypoint.c
int blabla(){ printf("Yes it works!\n"); exit(0); }
int main(){ printf("not called!\n");}
$ gcc entrypoint.c -e blala //-e:告诉使用balala函数作为进入点
$ ./a.out
Yes it works!
启动函数
vc6.0版本。更高版本很多函数在操作系统层面实现了。
在linux下面我cat了没找到。但能看到crtbegin.o等已经编译成.o的文件
由于[外链图片转存失败,源站可能有防盗链机制](pic
全部评论 (0)
还没有任何评论哟~
