#include<stdio.h>
int x=13; // forcing space allocation
int x;
int main(){
printf("%d\n",x);
}
上面的代碼編譯但下面的代碼沒有。爲什麼?錯誤:沒有鏈接的重新聲明
#include<stdio.h>
int main(){
int x=13; // forcing space allocation
int x;
printf("%d\n",x);
}
我被告知int x;可以由編譯器根據上下文解釋爲聲明或定義。我可以看到,在第一種情況下(全球一),但第二種情況發生。
我同意你的意見。但爲什麼不同樣的事情適用於局部變量。我的事情我失去了一些非常明顯的東西。請指出正確的方向 – Bazooka
您只能對具有文件範圍的變量進行初步定義,而不能對局部變量進行初步定義。 –