條件編譯怎麼避免重復包含頭文件
發布時間: 2023-07-31 05:56:09
1. VC如何解決重復包含頭文件的問題
語法上對頭文件里的內容沒有任何限制
c++語法有個要求就是任何名字(類型、變數或者函數什麼的)都要「先聲明後使用」,注意這個要求的范圍是在同一個文件里,就是說你這個.cpp里用到的東西必須在你這個.cpp里先有聲明。 如果你要用string類的變數, 你就必須先寫清楚這個類型的聲明,編譯器才知道怎麼去編譯這一段。 所以你要是不怕累的話你可以就挨個用到的地方重復寫一下,但是因為這個可能很麻煩, 也可能會幾個地方寫的不一致, 解決辦法就是採用一個頭文件,每個地方都include這個頭文件, 就相當於寫了這個類型的聲明。 include命令的作用就是把那個頭文件的內容復制到這里來, 至於頭文件裡面到底寫了什麼其實是沒有語法要求的,但是如上所述, 頭文件既然主要是解決這個聲明的問題, 所以當然你看到的頭文件里主要內容還都是聲明。 現在模板橫行的時候由於一些技術問題造成頭文件里也寫了很多實現, 這個解釋起來有點麻煩,你可以不搭理它
所以總結一下, C語言要求先聲明後使用,所以用頭文件來形成一個統一聲明, 而之所以要防止重復include頭文件,是因為一個cpp里一個名字是不可以被定義多次的, 所以對那些聲明=定義的東西如果重復include了,編譯的時候就容易出現重復定義的錯誤,當然對有些聲明跟定義截然分開的情況來說,重復include也沒問題
熱點內容