首頁 >後端開發 >C++ >為什麼我的 C 程式碼中出現靜態變數連結錯誤?

為什麼我的 C 程式碼中出現靜態變數連結錯誤?

Barbara Streisand
Barbara Streisand原創
2024-12-16 01:24:10317瀏覽

Why Am I Getting a Static Variable Linking Error in My C   Code?

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn