Advertisement

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)

还没有任何评论哟~