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()退出時執行。
下面給出一個簡單的例子:
-
#include <stdio.h>
-
void
-
__attribute__((constructor)) funcBeforeMain()
-
{
-
printf("%s...\n", __FUNCTION__);
-
}
-
void
-
__attribute__((destructor)) funcAfterMain()
-
{
-
printf("%s...\n", __FUNCTION__);
-
}
-
int main()
-
{
-
printf("main...\n");
-
return 0;
-
}
編譯並執行程式:
[[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