我有這樣的代碼:C代碼中的錯誤是什麼?
#include<stdio.h>
int main()
{
extern int i;
i = 20;
printf("%d\n", sizeof(i));
return 0;
}
我得到這樣的錯誤:
In function `main':
undefined reference to `i'
即使我已經定義i
爲什麼會出現錯誤時,拋出? 在此先感謝。
我有這樣的代碼:C代碼中的錯誤是什麼?
#include<stdio.h>
int main()
{
extern int i;
i = 20;
printf("%d\n", sizeof(i));
return 0;
}
我得到這樣的錯誤:
In function `main':
undefined reference to `i'
即使我已經定義i
爲什麼會出現錯誤時,拋出? 在此先感謝。
您已聲明i在單獨的文件中定義,但尚未鏈接到外部文件。
如果您刪除了extern關鍵字,它將按照您的預期工作。
extern關鍵字聲明一個變量或函數並指定 它具有外部鍵(它的名字是來自除 在其中它被定義其他文件可見)。當修改一個變量時,extern 指定該變量具有靜態持續時間(當程序開始時 被分配,當程序結束時被釋放)。變量或函數可以在另一個源文件中定義,或者在相同文件中定義爲 。默認情況下,文件 範圍內變量和函數的聲明是外部的。
i
哪裏定義?
試試這個。
#include<stdio.h>
int main()
{
int i;
i = 20;
printf("%d\n", sizeof(i));
return 0;
}
的「外部」的關鍵字是你告訴編譯器「這個變量是定義在其他地方,只要使用它,並相信我,這將是可在連接時間。」
或者在'}'之後放置一個'int i;'並將'extern int i' – xanatos