了解 C 17 中的內聯變數
2016 年,C 標準委員會引入了內聯變數作為 C 17 標準的一部分。此功能允許建立外部連結變量,這些變數可以在頭文件中定義並跨多個翻譯單元引用,而不會引發連結器錯誤。
內聯變數如何運作
應用於變數的內聯說明符允許其具有外部鏈接,這意味著允許在不同的翻譯單元中對變數進行多個定義。當存在多個定義時,連結器將選擇其中一個並忽略其他定義。
宣告、定義和使用內聯變數
內聯變數應聲明為靜態並且可以在類別定義或命名空間範圍中定義。如果使用 constexpr 說明符宣告它們,則可以使用大括號或等號初始化程序來初始化它們,也可以透過不使用初始化程序的單獨重新宣告來初始化它們。例如:
struct Kath { static inline std::string const hi = "Zzzzz..."; };
此程式碼在 Kath 結構中宣告一個名為 hi 的靜態內嵌變數。該變數使用值“Zzzzz...”進行初始化,並且可以使用 Kath::hi 從包含定義該變數的標頭的任何翻譯單元進行存取。
內聯變數的優點
內聯變數提供了幾個優點:
以上是C 17 內聯變數如何解決外部連結問題?的詳細內容。更多資訊請關注PHP中文網其他相關文章!