C 中的靜態變數連結錯誤
編譯C 程式碼時,特別是在Mac 上,您可能會遇到「靜態變數連結錯誤」與提供的程式碼片段中報告的類似。當嘗試引用尚未在外部正確定義的靜態變數(在 *.cpp 檔案中)時,通常會出現此錯誤。
問題根源
在提供的程式碼中,靜態變數「theString」在「Log.h」頭檔中聲明,但從未定義。靜態變數需要在對應的 *.cpp 檔案中進行外部定義來保留記憶體並初始化它們。
解決方案
要解決連結錯誤,可以新增定義將「theString」新增到「Log.cpp 」文件中,如下所示:
// Log.cpp string Log::theString; // Define the static string here
附加建議
除了外部定義靜態變數外,還建議避免使用「using namespace std;」在頭檔中。這種做法可能會導致名稱空間污染,從而使將來調試和維護程式碼變得更加困難。
以上是為什麼我的 C 程式碼中出現靜態變數連結錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!