2、另壹種是不需要建立存儲空間的。 例如:extern int a 其中變量a是在別的文件中定義的。
前者是“定義性聲明(defining declaration)”或者稱為“定義(definition)”,而後者是“引用性聲明(referncing declaration)”,從廣義的角度來講聲明中包含著定義,即定義是聲明的壹個特例,所以並非所有的聲明都是定義,例如:int a 它既是聲明,同時又是定義。然而對於 extern a 來講它只是聲明不是定義。壹般的情況下我們常常這樣敘述,把建立空間的聲明稱之為“定義”,而把不需要建立存儲空間的聲明稱之為“聲明”。很明顯我們在這裏指的聲明是範圍比較窄的,即狹義上的聲明,也就是說非定義性質的聲明,例如:在主函數中:
int main() {extern int A;//這是個聲明而不是定義,聲明A是壹個已經定義了的外部變量//註意:聲明外部變量時可以把變量類型去掉如:extern A;dosth(); //執行函數}int A; //是定義,定義了A為整型的外部變量