C++編譯時提示類型未定義(undefined)的可能原因

今天在添加了兩個新的cpp和hpp文件後調試,結果編譯器一直提示所使用的一個枚舉類型未定義,經過仔細確認發現該類型已經正確定義,並且代碼文件已經包含到工程中。

後來經過反覆確認,再加上網友給的靈感,感覺可能是由於頭文件循環引用導致的該枚舉類型聲明出現了異常!!!經過排查,發現確實如此!!!由於工程比較大,頭文件的引用可能也不是很規範,頭文件的層層嵌套引用導致出現了A.hpp包含了B.hpp,然後B.hpp又包含了A.hpp,故出現了上述未定義的錯誤。

因此,當出現莫名其妙的類型未定義錯誤時,很可能是由於頭文件循環引用導致的類型聲明或定義異常的問題,這個時候要檢查一下是否出現了頭文件的循環引用。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章