extern,可以在一個(gè)文件中引用另一個(gè)文件中定義的變量或者函數(shù),下面就結(jié)合具體的實(shí)例。
首先,引用同一個(gè)文件的變量,先寫一個(gè)簡(jiǎn)單的函數(shù)。
#include
int func();
int main()
{
func(); //1
printf("%d",num); //2
return 0;
}
int num = 3;
int func()
{
printf("%d\n",num);
}
這里一共定義了兩個(gè)函數(shù),一個(gè)主函數(shù)一個(gè)子函數(shù),子函數(shù)里直接打印的num的數(shù)據(jù),要打印數(shù)據(jù)首先要找到定義的數(shù)據(jù),這里定義的num是全局變量所以可以直接打印數(shù)據(jù)。
如果我們用extern進(jìn)行定義數(shù)據(jù)時(shí)需要采用全局變量定義,在其他地方使用,比如我們?cè)谥骱瘮?shù)定義了一個(gè)extern變量我們?cè)谄渌胤绞褂脮r(shí)需要線對(duì)變量進(jìn)行賦值操作,否則找不到相關(guān)的num。
#include
int func();
int main()
{
func(); //1
extern int num;
printf("%d",num); //2
return 0;
}
int num = 3;
int func()
{
printf("%d\n",num);
}
下面再說(shuō)extern與const使用問(wèn)題 。
如果我們要使用一個(gè)全局變量而且是不能改變的,那我們需要用const配合使用,代碼如下:
#include
int main()
{
extern const int num;
printf("%d",num);
return 0;
}
子函數(shù)
#include
const int num=5;
void func()
{
printf("fun in a.c");
}
這里我們?cè)谥骱瘮?shù)定義了一個(gè)extern const變量,需要在子函數(shù)的全局變量中定義const int num=5;這樣就可以使用。
extern除了引用另一個(gè)文件中的變量外,還可以引用另一個(gè)文件中的函數(shù),引用方法和引用變量相似。
mian.c
#include
int main()
{
extern void func();
func();
return 0;
}
common.c
#include
const int num=5;
void func()
{
printf("fun in a.c");
}
這里main函數(shù)中引用了b.c中的函數(shù)func。因?yàn)樗械暮瘮?shù)都是全局的,所以對(duì)函數(shù)的extern用法和對(duì)全局變量的修飾基本相同,需要注意的就是,需要指明返回值的類型和參數(shù)。
審核編輯:湯梓紅
-
STM32
+關(guān)注
關(guān)注
2310文章
11171瀏覽量
373770 -
參數(shù)
+關(guān)注
關(guān)注
11文章
1870瀏覽量
33973 -
函數(shù)
+關(guān)注
關(guān)注
3文章
4419瀏覽量
67627
發(fā)布評(píng)論請(qǐng)先 登錄
關(guān)鍵字volatile的含意
interrupt關(guān)鍵字使用
Labview 解析dxf文件并顯示
Temu跨境電商按關(guān)鍵字搜索Temu商品API的應(yīng)用及接口請(qǐng)求示例
哪些場(chǎng)合會(huì)用到volatile關(guān)鍵字?
天眼查平臺(tái)關(guān)鍵字搜索企業(yè)數(shù)據(jù)API接口技術(shù)指南
堆棧的定義,堆棧的使用方法
1688平臺(tái)關(guān)鍵字搜索商品API接口技術(shù)實(shí)踐指南
亞馬遜平臺(tái)根據(jù)關(guān)鍵字搜索商品API接口
亞馬遜 SP-API 深度開發(fā):關(guān)鍵字搜索接口的購(gòu)物意圖挖掘與合規(guī)競(jìng)品分析
阿里巴巴開放平臺(tái)關(guān)鍵字搜索商品接口實(shí)戰(zhàn)詳解:OAuth2.0 認(rèn)證落地 + 檢索效率優(yōu)化(附避坑代碼)
阿里巴巴國(guó)際站關(guān)鍵字搜索 API 實(shí)戰(zhàn):從多條件篩選到商品列表高效獲客
錫膏的儲(chǔ)存及使用方法詳解
stm32中常用關(guān)鍵字的使用方法
評(píng)論