㈠ extern在c語言中是什麼意思
是一個修飾符。
在C語言中,修飾符extern用在變數或者函數的聲明前,用來說明「此變數/函數是在別處定義的,要在此處引用」。
extern可置於變數或者函數前,以表示變數或者函數的定義在別的文件中,提示編譯器遇到此變數或函數時,在其它模塊中尋找其定義。另外,extern也可用來進行鏈接指定。
㈡ 在C語言中,extern的作用是什麼
在定義函數時,如果沒有加關鍵字「static」,或冠以關鍵字「extern」,表示此函數是外部函數:
[extern]
函數類型
函數名(函數參數表)
{……}
調用外部函數時,需要對其進行說明:
[extern]
函數類型
函數名(參數類型表)[,函數名2(參數類型表2)……];
[案例]外部函數應用。
(1)文件mainf.c
main()
{
extern
void
input(…),process(…),output(…);
input(…);
process(…);
output(…);
}
㈢ C語言里的static和extern的作用是什麼
假如有三個文件:a.h, a.c, main.c
在文件a.c中定義一個全局變數和函數:
int i = 213;
void print(void) { printf("print in a.c"); }
在文件a.h中聲明這個全局變數和函數:
extern int i;// 加extern聲明而不定義,指明這個變數在某處已定義,此處只是做一個說明
extern void printf(void); // 函數原型即是聲明,所以此處可以不用加extern明確這是聲明
在文件main.c中:
#include 「a.h」
int main()
{
printf("%d\n", i); // 直接使用i
print(); // 直接調用print()
}
---
如果將文件a.c中相關定義改為
static int i = 213;
static void print(void) { printf("print in a.c"); }
文件a.h與main.c中內容不變
此時編譯出錯,報告找不到print()函數,找不到i,這是因為static限制print()和i只能在a.c中使用。
===
如果用static修飾局部變數,則該局部變數將擁有全局生命周期,即在程序執行期間都存在,且其值為上一次使用後的值。
int print(void)
{
static int i = 0;
printf("%d",i++);
}
不加static,每次調用print(),輸出結果都是0
加上static,每次調用printf(), 輸出結果都不同,即:0,1,2,3……
㈣ c語言extern關鍵字的作用
extern,"外部"的意思,可以引入外部函數,外部變數。也可以藉此引用匯編程序。
㈤ c語言中extern怎麼用,舉個簡單例子說明下,謝謝。
extern是外部聲明用的,用來聲明外部的函數或者變數定義。
例如,你在1.C中定義了一個函數和變數:
void fun1(void);
int a = 0;
而你要在2.c中調用 fun1(),並且讀取a的值,
那麼需要再2.c的頭部如下外部聲明:
extern void fun1(void);
extern int a = 0;
這樣的話在編譯器在編譯2.c時,不會報錯誤,而在鏈接時找fun1、a,以實現對外部函數、變數的訪問。