extern和inline的用法

2021-10-23 13:31:26 字數 1176 閱讀 2252

.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...