所有的標頭檔案,不會被編譯, #include ***.h的意義是 把某個標頭檔案的內容全部都搬進原始檔裡面。
標頭檔案裡面不能 單獨宣告 乙個 int a; char b; 這種變數。 因為在#include 後,會有多個定義。
定義永遠只能有乙個,但是宣告可以有很多個。 所以在鏈結後,如果多個cpp檔案#include後,會有多個定義。(這種叫外部鏈結) 鏈結的時候不知道以哪個鏈結為準。
還有的東西是內部鏈結,那麼定義的東西只會在內部生效,鏈結的時候不會出現上面的問題。
const int a = 5;
inline void pp() ;
static int b ;
class a
以上4種可以在.h檔案中定義。 但是注意a中如果有函式,一定要在a類裡面寫出函式的實現。
C 關於標頭檔案和原始檔的分別
關於標頭檔案和原始檔的分別 首先,我們可以將所有東西都放在乙個.cpp檔案內.然後編譯器就將這個.cpp編譯成.obj,obj是什麼東西?就是編譯單元了.乙個程式,可以由乙個編譯單元組成,也可以有多個編譯單元組成.如果你不想讓你的源 變得很難閱讀的話,就請使用多個編譯單元吧.乙個函式不能放到兩個編譯...
標頭檔案和原始檔
一.例1 test.h void show test.cpp include using namespace std void show includeproblem.cpp include test.h int main 可以看到 includeproblem.cpp檔案彙總 include te...
關於標頭檔案和原始檔的分別
關於標頭檔案和原始檔的分別 首先,我們可以將所有東西都放在乙個.cpp檔案內.然後編譯器就將這個.cpp編譯成.obj,obj是什麼東西?就是編譯單元了.乙個程式,可以由乙個編譯單元組成,也可以有多個編譯單元組成.如果你不想讓你的源 變得很難閱讀的話,就請使用多個編譯單元吧.乙個函式不能放到兩個編譯...