C C 中extern關鍵字用法詳解

2021-09-08 16:43:41 字數 863 閱讀 3054

extern用於在多個檔案中間中,定義乙個全域性變數或者函式。可以在其他檔案中使用 extern 來得到乙個已定義的變數或函式的引用。

extern用於函式宣告時,和普通的函式宣告並沒有區別。即extern int foo();和int foo();是一樣的效果的。使用extern更多的是表示該函式在其他檔案中定義。外部定義的函式一般都在 .h 檔案中使用extern關鍵字宣告。

當你需要在多個檔案中,使用乙個全域性變數時,你需要使用extern關鍵字來對全域性變數進行宣告。extern宣告的全域性變數一般放在.**件中。

#ifndef demo1_h

#define demo1_h

extern int a;

#endif

#include "demo.h"

a = 1;

void foo1()

#include "demo.h"

void foo2()

我們在demo1.c和demo2.c中都可以訪問到a這個變數。

注意:變數不可在標頭檔案中定義。因為demo1.c和demo2.c都包含了demo.h,在demo.h定義a,會造成重複定義。但是,也別忘記在乙個檔案中第一變數,否則會造成未定義錯誤。

由於c++生成符號表時,會把函式名和引數進行拼接來生成符號,所以c和c++混用,在鏈結時,會出現符號找不到的情況。此時使用extern 」c「{}來相容c函式。

#ifdef __cplusplus

extern "c"

#endif /* __cplusplus */

C C 中extern關鍵字

extern關鍵字可置於變數或者函式前,以表示變數或者函式的定義在別的檔案中,提示編譯器遇到此變數或函式時,在其它模組中尋找其定義。另外,extern也可用來進行鏈結指定。在介紹外部變數之前,先來看一下什麼是區域性變數。下面是乙個例子。include define maxline 1000 int ...

C C 中extern關鍵字

當extern與 c 一起連用時,如 extern c void fun int a,int b 這就告訴編譯器在編譯fun這個函式名時按著c的規則去翻譯相應的函式名而不是c 的,c 的規則在翻譯這個函式名時會把fun這個名字弄得面目全非,例如 fun abc isdnfsdf 不同編譯器採取的翻譯...

C C 中extern關鍵字詳解

一.extern修飾變數和函式 在c語言中,修飾符extern用在變數或者函式的宣告前,用來說明 此變數 函式是在別處定義的,要在此處引用 extern宣告不是定義,即不分配儲存空間。先來看一段 basic stdy.h ifndef basic stdy h define basic stdy h...