隨著程式越來越複雜, 我們希望把程式的各個部分分別儲存在不同的檔案中。
我們可以將原來的程式分成三個部分:
#pragma once
#ifndef game_h_
#define game_h_
#include
using
namespace
std;
struct game
;void inputgame(game games, const
int size);
void sort(game games, const
int size);
void display(const game games, const
int size);
const
int size = 5;
#endif // !game_h_
標頭檔案中常包含的內容:函式原型、使用#define或const定義的符號常量、結構宣告、類宣告、模板宣告、內聯函式
#include "game.h"
#include
void inputgame(game games, const
int size)
}void sort(game games, const
int size)}}
}void display(const game games, const
int size)
}
#include"game.h"
#include
int main()
; inputgame(games, size);
sort(games, size);
display(games, size);
return
0;}
C 分離式編譯
c 開發中廣泛使用宣告和實現分開的開發形式,其編譯過程是分離式編譯,就是說各個cpp檔案完全分開編譯,然後生成各自的obj目標檔案,最後通過鏈結器link生成乙個可執行的exe檔案。不需其他操作。在編譯main.cpp的時候,不需要知道呼叫的其他檔案中的函式的具體實現,只需要有個宣告,然後會有一條c...
分離式編譯
最近的工作中需要用到類模板。宣告模板類放在標頭檔案裡,然後犯了個錯誤把 類的成員函式定義按照慣例放在了乙個cpp檔案裡。編譯雖然過了,但是鏈結也會出問題。這裡開始找找原因,原來類模板不支援分離編譯。c 編譯過程分幾步。第一 預編譯 這一步可以粗略的認為只做了一件事情,那就是 巨集展開 也就是對那些 ...
C 不支援模版的分離式編譯
1 c 不支援模版的分離式編譯,為什麼?c 是分別,單獨編譯,對於每個cpp檔案,預編譯為編譯單元,這個編譯單元是自包含檔案,編譯的時候,不需要其他的檔案,編譯好了,生成obj檔案,然後連線成exe檔案。在編譯的時候,使用乙個東西,如果這個東西就在當前位置,當然好了。如果不再當前位置,也沒關係,只要...