Extern 關鍵字 (Extern Keyword)

Extern 關鍵字 (Extern Keyword)

Extern 關鍵字 教學與筆記。

說明

可以宣告變數會在其他的位置被定義,這個位置可能是在同一份文件之中,或是在其他文件。

範例

1
2
// some.c
int a = 100;
1
2
3
4
5
6
7
// main.c
#include <stdio.h>

void main() {
extern int a;
printf("%d\n", a);
}

編譯:

1
gcc -o test main.c some.c

重覆定義錯誤

extern 宣告 a 在其他位置被定義。如果在使用 extern 時同時指定其值,則視為在該位置定義變數。結果就是引發重覆定義錯誤。

1
2
3
4
5
6
7
// main.c
#include <stdio.h>

void main() {
extern int a = 200; // error, 'a' has both 'extern' and initializer
printf("%d\n", a);
}

重新指定其值

先聲明 extern 找到變數,再重新指定其值。

1
2
3
4
5
6
7
8
// main.c
#include <stdio.h>

void main() {
extern int a;
a = 200;
printf("%d\n", a);
}
Author

Meow Lucian

Posted on

2019-07-17

Updated on

2022-07-06

Licensed under

Comments