今天看到《程序员的自我修养》这本书的第四章,上面讲到加载器在执行mian函数之前会先进行一些初始化的操作,包括堆分配和C++中全局对象的构造函数的调用,所以下面用一个小程序来验证下。
#include<stdio.h>
void __attribute__((__section__(".init"))) fun()
{
printf("the init function\n");
main();
}
int main()
{
printf("the main function\n");
return 0;
}
__attribute__(段) 能够制定参数或者函数存在elf文件的哪个段中,如果放在init段,默认是先执行这个段中的程序。。