C 中變數的多重定義
遇到「multipleDefinitions for wat」的編譯時錯誤可能會令人困惑。讓我們分析提供的原始程式碼並找出問題。
在您的程式碼中,您有四個檔案:FileA.cpp、FileA.h、FileB.cpp 和 FileB.h。編譯時,編譯器會偵測到名為 wat 的變數的多個定義。
經過檢查,您已在FileA.h 和FileB.h 中定義了變數wat:
// FileA.h void hello(); #endif /* FILEA_H_ */ // FileB.h int wat; void world(); #endif /* FILEB_H_ */
當您程式碼編譯時,頭檔多次包含在編譯單元中,導致變數wat重複定義。要解決此問題,您需要將 wat 的聲明與其定義分開。
解:
extern int wat;
這通知編譯器wat 將被定義
int wat = 0;
現在,編譯時,編譯器會正確辨識出在FileB.h 中宣告並定義的wat在FileB.cpp中,解決多重定義錯誤。
以上是為什麼我在 C 中遇到「『wat』的多重定義」編譯時錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!