c语言 extern_Visual C++ 6.0环境中C语言extern 变量使用过程报错
????extern?變量稱為外部存儲變量。extern聲明了程序中將要用到但尚未定義的外部變量。本次錯誤的解決方法同樣適用于外部函數(shù)。外部函數(shù)就是可以被其他源文件調(diào)用的函數(shù),定義外部函數(shù)時使用extern進(jìn)行修飾。
????首先,分別創(chuàng)建兩個源文件“ex1.c”和“ex2.c”。其中,“ex2.c”聲明了一個外部整型變量a,暫未定義它的值;“ex1.c”中定義了一個變量名相同(a)的整形變量,值為10。此時執(zhí)行“ex2.c”報如下錯誤:
Linking...
ex2.obj : error LNK2001: unresolved external symbol _a
Debug/ex2.exe: fatal error LNK1120: 1 unresolved externals
執(zhí)行 link.exe 時出錯.
????出現(xiàn)上面的錯誤,百度的解法五花八門,其中最熱門的解法,也就是大家普遍發(fā)表的文章內(nèi)容,如下圖,然而卻不管用(此方法可能適用于其他情況)。
????其實只需要分別編譯一下兩個源文件“ex1.c”和“ex2.c”即可解決(主要還是“ex1.c”的編譯)。一開始作者也是沒有分別編譯一下這兩個源文件,只是編譯和構(gòu)建了“ex2.c”,結(jié)果就報上面的錯誤,然后埋頭于百度的解法,硬是沒能解決。
????是否編譯了“ex1.c”可以從左側(cè)欄中判斷,編譯后有變量a。
????編譯前:
????編譯后:
????此時執(zhí)行“ex2.c”不再報錯,控制臺輸出結(jié)果
[注]:在C語言中定義函數(shù)時,如果不指明函數(shù)是內(nèi)部函數(shù)還是外部函數(shù),那么將默認(rèn)指定函數(shù)為外部函數(shù),也就是說,定義外部函數(shù)時可以省略關(guān)鍵字extern,但是不能省略聲明外部函數(shù)中的extern。
總結(jié)
以上是生活随笔為你收集整理的c语言 extern_Visual C++ 6.0环境中C语言extern 变量使用过程报错的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: docker 安装kafka_larad
- 下一篇: b站会员怎么升级(b站大会员加经验吗)