靜態初始化順序失敗
「靜態初始化順序失敗」(SIOF)是指使用靜態資料時可能發生的潛在問題C 程式中的成員。當多個來源檔案定義具有循環依賴關係的靜態資料成員時,就會出現這種情況。
考慮以下範例:
// file1.cpp extern int y; int x = y + 1; // file2.cpp extern int x; int y = x + 1;
問題:
基於在給定的程式碼片段上,您能解釋一下編譯期間可能發生的以下步驟嗎?連結?
答案:
依照C標準(3.6.2「非本地物件的初始化」),以下步驟發生:
以上是C 靜態初始化順序慘敗的編譯和連結期間會發生什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!