在.c
或者.cpp
檔案中,可能有多個函式和變數。
以main
函式為例,
如圖所示,定義的m
,這樣在main函式裡cout<
extern int m;後則可以正常使用,意思就是,這個變數已經在別處定義過。
extern int m;
在main
函式之前。
同樣f函式也一樣,只不過我們只需把函式體寫在前面,無需顯式加上extern
;
事實上,我們經常會建立多個.cpp和多個.h
檔案,並在main
函式包含其他的標頭檔案就可以呼叫其他的函式。但是我們發現,一般都把函式宣告放在.h
,函式定義放在.cpp
內,這是為什麼呢?
這是因為在main
函式檔案內#incude
其他檔案後,只能找到在被include
檔案的.h
內的變數和函式,而無法找到.cpp
內的變數和函式,而直接#incude"test.cpp"
又會出錯。
這就需要extern關鍵字了;
如圖,
在solution的.cpp裡宣告並初始化的變數,如果要在另乙個.cpp使用它(不是僅僅重名),就需要新增extern說明該變數已經被定義過。
我們定義函式的作用就是為了提公升**的復用性,但是在某些場合下,為了節省函式呼叫的開銷,從而提公升函式執行的效率,內聯函式是個選擇;
我們一般在.**件中宣告函式,並在.cpp中定義(實現)。
內聯函式要在.**件中宣告並定義;
以類為例:
display的block和inline屬性
block元素特點 1.處於常規流中時,如果width沒有設定,會自動填充滿父容器 2.可以應用margin padding 3.在沒有設定高度的情況下會擴充套件高度以包含常規流中的子元素 4.處於常規流中時布局時在前後元素位置之間 獨佔乙個水平空間 5.忽略vertical align inlin...
static和extern的區別
static 一 在c中,static主要定義全域性靜態變數 定義區域性靜態變數 定義靜態函式。1 定義全域性靜態變數 在全域性變數前面加上關鍵字static,該全域性變數變成了全域性靜態變數。全域性靜態變數有以下特點。a.在全域性區分配記憶體。b.如果沒有初始化,其預設值為0.c.該變數在本檔案內...
Import 和Extern的區別
import 語法格式 import 符號 import 偽操作告訴編譯器當前的符號不是在本原始檔中定義的,而是在其他原始檔中定義的,在本原始檔中可能引用該符號,而且不論本原始檔是否實際引用該符號,該符號均會被加入到本原始檔的符號表中。與下面的extern的區別之處 符號在程式中區分大小寫,weak...