專案中為了結構清晰肯定是會將不同功能的函式放置在不同的檔案中。那麼我們需要呼叫其他檔案中的函式怎麼辦?有extern!
假設a1.cpp需要呼叫b2.cpp中的函式int getsum(int array,int len);
我們需要在a1.cpp中宣告【extern int getsum(int array,int len)】,以此告訴編譯器,該函式在其他的檔案中,先完成編譯給我留個位址空間,等待鏈結時,我在把該函式的鏈結位址給你,否則編譯器按照該函式為宣告報錯。變數也是這種情況。
————————————————————————————a1.cpp——————————————————————————
#include
#include
using namespace std;
extern int getsum(int array,int len);
int main(){
....
......
return 0;
然後當我們需要使用乙個b2.cpp中的多個函式時,怎麼辦呢?使用多次extern的宣告嗎?
為了更加方便我們去管理程式。
我們將所有的extern的宣告寫入乙個.h結尾的檔案中。(其實什麼結尾的檔案都行,只是大家習慣.h結尾了,head嘛)
————————————————————————————b2.h——————————————————————————————
#ifndef head_h_
#define head_h_
extern int func1(int a);
extern int func1(int a);
....
......
#endif
————————————————————————————a1.cpp——————————————————————————
#include
#include
using namespace std;
#include "b2.h" // " "表示現在a1.cpp所在目錄下找b2.h,並拿過來使用;找不到在去預設的include目錄下去找
// <>表示直接去預設的include目錄下去找
int main(){
....
......
return 0;
#開頭的3行是為避免重複宣告,整個檔案結構中檔案多了,多次#include "b2.h"後,不這麼寫容易產生重複的宣告。這樣寫就避免在這方面花費過多時間了。
最後,當我們a1.cpp需要更多cpp檔案中的函式時,舉一反三,按照b2.h中的方法和a1.cpp中【#include "b2.h"】的寫法去多次使用即可。
關於 h和 cpp檔案
h和.cpp檔案主要實現了對 的分離操作,將 區分開來寫,便於更加方便清楚得去閱讀程式,更加容易理解程式。1.宣告寫在.h檔案中,定義實現寫在.cpp檔案中 在c 中,需要在.h標頭檔案中宣告各個變數及方法 然後在.cpp執行檔案中才能方便的使用。資料成員的申明與定義都是放在.h檔案的類定義內部。對...
Cpp 關於變數
作為乙個程式設計師必須遵守命名規則。常見的命名法有 一 匈牙利 法 二 駝峰命名法 匈牙利命名法規則 識別符號的名字以乙個或者多個小寫字母開頭作為字首 字首之後的是首字母大寫的乙個單詞或多個單詞組合,該單詞要指明變數的用途。字首 型別 描述 a array 陣列 b bool 布林 by byte ...
CPP檔案循序
error c2143 syntax error missing before error c2501 cmydoc missing storage class or type specifiers error c2501 getdocument missing storage class or t...