跳转至

C 属性

1 constructor、destructor

  • 语法
  • constructor :修饰的函数会在 main() 函数 开始之前 执行
  • constructor (priority) :同上,但可以指定一个优先级
  • destructor :修饰的函数会在 main() 函数 结束之后 执行
  • destructor (priority) :同上,但可以指定一个优先级
  • 使用场景:一般用户整个项目初始化和项目结束的资源释放。
  • 优势:不用手动调用,自动执行。
  • 示例:
int main(int argc, char * argv[]) {
    printf("main");
    return 0;
}
__attribute__((constructor(103))) static void beforeFunction()
{
    printf("before\n");
}
__attribute__((destructor)) static void afterFunction()
{
    printf("after\n");
}
  • 输出:
before
main
after