constructor属性设置函数在所有函数之前执行,destructor设置函数在所有函数退出后执行。
test.cc
#include <stdio.h>
void __init()
{
printf("before main\n");
}
void __exit()
{
printf("after main\n");
}
void __init() __attribute__ ((constructor));
void __exit() __attribute__ ((destructor));
int main()
{
printf("in main\n");
return 0;
}
编译运行:
$ g++ -o test constructor.cc ;./test
before main
in main
after main
或者
#include <stdio.h>
__attribute__ ((constructor)) void __init()
{
printf("before main\n");
}
__attribute__ ((destructor)) void __exit()
{
printf("after main\n");
}
int main()
{
printf("in main\n");
return 0;
}
编译运行:
$ g++ -o test constructor.cc ;./test
before main
in main
after main
本文介绍了如何使用构造 (__init__) 和析构 (__exit__) 函数来实现程序开始和结束时的特定操作。通过 gcc/g++ 的 attribute 扩展,可以在 C/C++ 程序启动前和结束后自动调用这些函数。
857

被折叠的 条评论
为什么被折叠?



