__attribute__((constructor))
当声明一个函数,并在其后加上__attribute__((constructor))时,则这个函数会在main函数调用之前被调用。
__attribute__((destructor))
当声明一个函数,并在其后加上__attribute__((destructor))时,则这个函数会在main函数调用之前被调用。
void before_main() __attribute__((constructor));
void after_main() __attribute__((destructor));
void before_main(){
printf("before main\n");
}
void after_main(){
printf("after main\n");
}
void
main(int argc, char **argv)
{
printf("in main\n");
}
程序的运行结果为:
before main
in main
after main.