extern 用來定義一個或多個變量。其后跟數據類型名和初始值。例如:
extern int a =10
它與 int,long long int,double,char的本質區別,在於 extern 可以定義未聲明類型的變量。舉個例子:
#include <stdio.h>
int a = 10;
long long int b = 100;
double c = 1.1;
char d = 5;
/* 以上各函數前均可加入 extern ,其意義不會改變。 */
extern a = 10;
extern b;
此處未聲明變量 a 的類型,這是 c 語言語法所認可的。而且,在聲明變量的同時,同樣可以不設定初始值。
但是請注意,這是一種不好的習慣,因為它會降低代碼的可讀性。因此應盡量避免此用法。
設定初始值不同於聲明變量。聲明變量時,可以不為其設定初始值。
而設定初始值指定了變量在其值受到改變前的狀態。
例子:
extern int a /* 這時沒有指定初始值 */
extern int a = 10 /*這時指定 a 的初始值為 10 */
如果沒有為變量指定初始值,那么它的初始值將根據數據類型而指定。例如類型為 int 的,初始值為 0 ;類型為 double 的,初始值為 0.00000 ,因為它是一個浮點數。