1樓:網友
函式宣告,表示該函式實體不再該檔案中。
2樓:湛藍水晶
說明這個函式是在其它的檔案中已經有的,用extern只是引用其它檔案的函式。
3樓:亓官霏
定義乙個外部變數,此變數存在於你已經建立好的其他的原始檔之中!
4樓:爨室
宣告外部變數,最好不要用,改用引數傳遞比較好。
5樓:網友
c函式前加extern表示該函式已經在其他檔案中定義。
extern的定義:
extern是c,c++中的乙個關鍵字。extern可置於變數或者函式前,以表示變數或者函式的定義在別的檔案中,提示編譯器遇到此變數或函式時,在其它模組中尋找其定義。另外,extern也可用來進行鏈結指定。
c語言中extern的意思是什麼?
6樓:胡說八道小鬼
extern關鍵字可以置於變數或者函式前,以標示變數或者函式的定義在別的檔案中,提示編譯器遇到此變數和函式時在其他模組中尋找其定義。這裡起到的是宣告作用範圍的用處。
extern的另外用法是當c和c++混合程式設計時假如c++呼叫的是c源文件定義的函式或變數,那麼要加extern來告訴編譯器用c方式命名函式:
文件呼叫裡面的變數i和函式callme()
1、可以通過把原函式名與引數資訊結合,產生乙個獨特的內部名字,這種技術叫做名字修飾(name mangling)。名字修飾規則沒有乙個標準,所以不同的編譯器的名字修飾規則也不一樣。
下面是一組函式,其中f()函式過載了:
f(void)和f(int)是不同的函式,除了函式名相同以外沒有任何關係。當生成obj目標檔案時,為了區分它們,c++編譯器根據引數資訊進行了名字修飾:
2、c語言中沒有名字修飾(name mangling),因為c語言不支援函式過載。但是如果c++中含有c**,在編譯時c++編譯器對c**的函式也會進行名字修飾,函式名變了以後,將導致在c執行庫中找不到對應函式,發生鏈結錯誤。
為了防止c++編譯器對c**進行名字修飾,我們將c**用extern 「c」進行鏈結指定,告訴編譯器,在生成中間檔案時,不要對這部分**進行名字修飾,而是生成符合c規則的中間符號名。
新增了extern 「c」鏈結指示後,上面的**就能夠正常執行了。
7樓:網友
extern是全域性變數宣告。
只要宣告全域性變數就預設 前面加extern(程式設計師可以不加,但編譯器預設加上)
若本檔案 引用別的檔案中的全域性變數 一定要加上extern 宣告一下例如 #include "my_"
extern int b;//b是在my_中宣告瞭的乙個全域性變數這個extern 是個宣告他可以在任何地方宣告 引用了乙個全域性變數 (可以試試 在main()函式執行完之後宣告 也不會出錯)
這樣在 工程的總標頭檔案中就不需要考慮 先#include 哪個檔案了。
8樓:網友
extern表示是外部函式或外部變數,比如:
1、extern void add(int x,inty);表示該函式主體不在當前模組中,在另乙個模組中(檔案)
2、extern int total;表示該變數在另乙個模組總定義過。
一般都把一些經常用到的列舉和變數之類的寫在。h標頭檔案中。這樣要引用時直接include "標頭檔案名"就可以了呼叫裡面所有的列舉和變數了。
在大型專案中,引用別的。c檔案中的函式則只能用extern,因為。c檔案是不能 include的。
所以想引用別的。c檔案中的函式和全域性變數、列舉等等的就只能用extern。
9樓:籍尋桃希萊
include是把整個都載入其中,包括檔案裡的所有的函式和變數。而採用extern只需要把需要的變數引用進來。這樣可以保證執行效率,及資源節約!
函式定義的時候要加extern嗎
10樓:匿名使用者
extern,是當你在檔案中,需要呼叫檔案中乙個定義過的void funct()函式時,需要在中宣告extern void funct()來呼叫函式。變數也一樣。
c語言中,函式前加void是什麼意思?
11樓:_夢幻陽光
每個函式都做一件事,事情做完的話最好告訴別人,函式也是,fun就是乙個人,後面括號裡面的就是傳入引數,也就是別人叫你做的事,fun前面的是返回值,就是你告訴別人這件事做的怎麼樣了,void型別就是空型別,做完了不告訴別人,在函式里面return ;就行了。寫個簡單的例子。
int add(int a,int b)
這個就是把a+b的結果傳出去,因為是int行,所以返回值也是int型,就用int了。
c語言函式內部使用extern
12樓:網友
extern 用於函式定義 表示全域性可見的 用於變數 表示 他在其他 的地方 定義。
要是在本函式定義 就是告訴 這個變數在任何地方可見 :
事實上 大多數 都沒有在函式名 之前加 儲存型別 說明符的習慣 所以大多數的函式 都是全域性可見的。
13樓:蜻蜓點水
是的,是其他c檔案裡面的變數。
c語言中的extern是什麼,有什麼作用啊?
14樓:得言君
extern 是變數或函式的申明,告訴編譯器在其它檔案中找這個變數或函式的定義。
15樓:
說明要引用的變數是外部變數,函式是外部函式,就是非本檔案中定義的。
16樓:文件加油驛站
extern是全域性變數宣告。
只要宣告全域性變數就預設 前面加extern(程式設計師可以不加,但編譯器預設加上)
若本檔案 引用別的檔案中的全域性變數 一定要加上extern 宣告一下。
例如 #include "my_"
extern int b;//b是在my_中宣告瞭的乙個全域性變數這個extern 是個宣告他可以在任何地方宣告 引用了乙個全域性變數 (可以試試 在main()函式執行完之後宣告 也不會出錯)
這樣在 工程的總標頭檔案中就不需要考慮 先#include 哪個檔案了。
17樓:憑本事起嘚名字
extern int a;
int main()
int a = 123;
上面**是能正確執行的,a的定義就在該檔案中。
extern表示乙個函式或變數的宣告,並且標識這是乙個external鏈結。external鏈結表示該函式或變數的是非static的,並不是表示它的定義在別的模組(檔案)中。
宣告乙個函式時,extern可以省略,標準庫檔案中,函式的宣告都是不帶extern的。宣告變數時不能省略,不然就成了乙個未初始化的變數定義。
C語言中,extern修飾函式是什麼意思
咯咯是這樣的 如果你想定義一個靜態函式 要在函式返回值型別前加static 如果你想定義一個外部函式 要在函式返回值型別前加extern 可省略 也就是說 預設為extern的 extern是全域性變數宣告 只要宣告全域性變數就預設 前面加extern 程式設計師可以不加,但編譯器預設加上 若本檔案...
c語言中extern是什麼意思,在C語言中標頭檔案的extern是什麼意思呢?
extern 宣告的函式是在外部定義的函式例項,最常見的就是通過extern定義在win32 dll定義的非託管函式。就是全域性變數的意思,在建立工程的情況下,其他檔案也可以呼叫這個變數。用了extern,就表示這個變數是全域性的和動態的,不存在使用哪一個的問題.比如3號檔案的int a變成289了...
C類名後加冒號是什麼意思C建構函式後面加冒號是什麼意思?後面應該加什麼內容呢?是賦初值嗎?
在c 語言中,一個派生類可以從一個基類派生,也可以從多個基類派生。從一個基類派生的繼承稱為單繼承 從多個基類派生的繼承稱為多繼承。派生類的定義格式 單繼承的定義格式如下 class 派生類名 繼承方式 基類名 繼承方式 常使用如下三種關鍵字給予表示 public 表示公有基類 private 表示私...