C言語内でextern変数
外部変数は、グローバル変数の展開です。
グローバル(グローバル)変数
変数はグローバル変数、関数、ファイルのいずれかの宣言によって呼び出すことができる、任意の関数の外では、グローバル変数であると宣言しました。グローバル変数は一度だけ定義することができます。
int globalVar
globalVarは、グローバル変数として定義した場合、デフォルトの初期値は0であり、それはそれぞれのシステムメモリが割り当てられています。さて、変数の関数を定義する任意のファイルは、それを呼び出すことができます。
extern変数
あなたはあなたがあるため、同じ名前の、同じ名前でコンパイルエラーがグローバル変数を宣言した場合、別のファイルにグローバル変数を呼び出したい場合は、この時間は、我々は外部変数を使用する必要があります。
extern int globalVar
extern宣言は、それはそれのためにメモリを割り当てていない、この変数は他のファイルで定義されていることをコンパイラに指示します。
例
#main.c
#include<stdlib.h>
#include<stdio.h>
#include"test.h"
int a; /* global variable */
int main(int argc, char** argv)
{
a = 10;
func();
return 0;
}
#test.h
extern int a
int func();
# test.c
#include"test.h"
#include"stdio.h"
int func()
{
printf("value of a is %d", a );
}
$ gcc main.c test.c -o main
$ ./main
value of a is 10