gcc __attribute__关键字举例之constructor/destructor

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


 



你可能感兴趣的:(gcc,Constructor,destructor)