extern,可以在一個文件中引用另一個文件中定義的變量或者函數,下面就結合具體的實例。
首先,引用同一個文件的變量,先寫一個簡單的函數。
#include
int func();
int main()
{
func(); //1
printf("%d",num); //2
return 0;
}
int num = 3;
int func()
{
printf("%d\n",num);
}
這里一共定義了兩個函數,一個主函數一個子函數,子函數里直接打印的num的數據,要打印數據首先要找到定義的數據,這里定義的num是全局變量所以可以直接打印數據。
如果我們用extern進行定義數據時需要采用全局變量定義,在其他地方使用,比如我們在主函數定義了一個extern變量我們在其他地方使用時需要線對變量進行賦值操作,否則找不到相關的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);
}
下面再說extern與const使用問題 。
如果我們要使用一個全局變量而且是不能改變的,那我們需要用const配合使用,代碼如下:
#include
int main()
{
extern const int num;
printf("%d",num);
return 0;
}
子函數
#include
const int num=5;
void func()
{
printf("fun in a.c");
}
這里我們在主函數定義了一個extern const變量,需要在子函數的全局變量中定義const int num=5;這樣就可以使用。
extern除了引用另一個文件中的變量外,還可以引用另一個文件中的函數,引用方法和引用變量相似。
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函數中引用了b.c中的函數func。因為所有的函數都是全局的,所以對函數的extern用法和對全局變量的修飾基本相同,需要注意的就是,需要指明返回值的類型和參數。
審核編輯:湯梓紅
-
STM32
+關注
關注
2270文章
10906瀏覽量
356530 -
參數
+關注
關注
11文章
1839瀏覽量
32287 -
函數
+關注
關注
3文章
4338瀏覽量
62734
發布評論請先 登錄
相關推薦
評論