C 中的全域初始化順序:忽略依賴關係
問題:
問題:
問題:
在程式碼片段中前提是,全域變數初始化的順序似乎忽略了依賴性。具體來說,在聲明結構體實例之前呼叫結構體的建構子。
1。全域變數的初始化順序:
單一翻譯單元(來源檔案)中的全域變數依照它們定義的順序進行初始化。
但是,初始化順序不同翻譯單元中全域變數的數量未指定。
2.初始化時忽略依賴關係:
是的,全域變數的初始化順序忽略了依賴關係。這意味著一個全域變數可以在它所依賴的另一個全域變數之前被初始化。 -
- 3.確保正確的初始化順序:
- 為了確保在初始化dummy 之前調用Foo 的構造函數,可以採取以下步驟:
在同一個檔案中,在dummy 之前定義globalFoo翻譯單元。 使用指向全域實例的靜態指標。在任何動態初始化發生之前,指標將被初始化為 null。 在 addToGlobal 中,檢查指標是否為 null。如果是,則 addToGlobal 會建立全域 Foo 實例。
以上是C中的全域變數初始化可以忽略依賴關係嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!