__attribute__((constructor)) 和__attribute__((destructor)) 如何運作
何時使用__ constructor))運行?
此屬性在載入共用程式庫時執行,通常在程式啟動期間執行。
為什麼有兩個括號?
所有 GCC屬性都遵循此語法,大概是為了將它們與函數呼叫區分開。
屬性'性質
屬性是GCC特定的語法,而不是函數或巨集。
相容性
__attribute__((constructor)) 和__attribute__((destructor)) 在C 中都有效和C .
函數靜態要求
使用__attribute__((constructor)) 和 __attribute__((destructor)) 屬性的函數不需要是靜態的。
__attribute__((析構函數)) 運行時間
析構函數在共享庫卸載時運行,通常在程式退出時運行。
建構子和析構函式機制
共享物件檔案包含引用用建構子和析構函式屬性標記的函式的特殊節(.ctors 和.dtors )。動態載入器在庫載入和卸載期間呼叫這些函數。靜態連結器中存在用於啟動和關閉的類似機制。
以上是`__attribute__((constructor))` 和 `__attribute__((destructor))` 在 C/C 中如何運作?的詳細內容。更多資訊請關注PHP中文網其他相關文章!