1. 程式人生 > >GCC設定函式屬性為constructor和destructor

GCC設定函式屬性為constructor和destructor

cc允許為函式設定__attribute__ ((constructor))和__attribute__ ((destructor))兩種屬性,顧名思義,就是將被修飾的函式作為建構函式或解構函式。程式設計師可以通過類似下面的方式為函式設定這些屬性:

void funcBeforeMain() __attribute__ ((constructor));

void funcAfterMain() __attribute__ ((destructor));

也可以放在函式名之前:

void __attribute__ ((constructor)) funcBeforeMain();

void __attribute__ ((destructor)) funcAfterMain();

帶有(constructor)屬性的函式將在main()函式之前被執行,而帶有(destructor)屬性的函式將在main()退出時執行。

下面給出一個簡單的例子:

  1. #include <stdio.h>

  2. void

  3. __attribute__((constructor)) funcBeforeMain()

  4. {

  5. printf("%s...\n", __FUNCTION__);

  6. }

  7. void

  8. __attribute__((destructor)) funcAfterMain()

  9. {

  10. printf("%s...\n", __FUNCTION__);

  11. }

  12. int main()

  13. {

  14. printf("main...\n");

  15. return 0;

  16. }

編譯並執行程式:

[[email protected] workshop]# gcc constructor.c -o constructor [[email protected] workshop]# ./constructor  funcBeforeMain... main... funcAfterMain...

--------------------- 本文來自 落塵紛擾 的CSDN 部落格 ,全文地址請點選:https://blog.csdn.net/jasonchen_gbd/article/details/44138877?utm_source=copy