頭文件的函數(shù)的實現(xiàn)文件都在其他文件中,比如VC++就是在那些.LIB和.DLL文件中。這樣可以把實現(xiàn)文件轉(zhuǎn)化為LIB和DLL,就可以保護你的源代碼。而只留出來頭文件,給別人看,別人用頭文件作為接口,調(diào)用LIB或者DLL中的函數(shù)。
站在用戶的角度思考問題,與客戶深入溝通,找到北海街道網(wǎng)站設(shè)計與北海街道網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設(shè)計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都網(wǎng)站建設(shè)、網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、國際域名空間、網(wǎng)站空間、企業(yè)郵箱。業(yè)務(wù)覆蓋北海街道地區(qū)。
出現(xiàn)該錯誤的原因為編譯時只變編譯了源文件的一部分,故在鏈接時無法從編譯好的目標(biāo)代碼中找到print函數(shù),所以出錯。根據(jù)你的源文件結(jié)構(gòu),個人推薦先單獨編譯源文件為多個object文件,再統(tǒng)一鏈接。
在定義函數(shù)的.c文件中包含聲明函數(shù)的.h文件。
你把大括號的位置放錯了,sushu函數(shù)被定義在了main函數(shù)里面,但是按照C語言的規(guī)定,函數(shù)不允許嵌套定義,所以你的sushu相當(dāng)于沒有定義(不知為何你的編譯器沒有報錯說不允許在函數(shù)內(nèi)定義函數(shù))。
外部函數(shù)extern時聲明這個函數(shù)為外部函數(shù),本文件不做定義,只調(diào)用,編譯不會出錯,但不能運行(沒有函數(shù)實體)。。如果想有運行結(jié)果就必須將函數(shù)實體包含進來,所以文件包含和extern是配合使用的。。
因為在main中的void func ( );是聲明有個func函數(shù)而不是調(diào)用,調(diào)用的話只寫func ( );前面不加返回類型。
在C語言中,出現(xiàn)未定義,簡單來說有以下幾種原因:變量類型沒有指定。指定類型的方式與C++混淆了,特別是在.c文件中容易出現(xiàn)這種錯誤。變量指定了類型,但是與使用的變量名不符合,使用的變量名會提示為未定義。
你把大括號的位置放錯了,sushu函數(shù)被定義在了main函數(shù)里面,但是按照C語言的規(guī)定,函數(shù)不允許嵌套定義,所以你的sushu相當(dāng)于沒有定義(不知為何你的編譯器沒有報錯說不允許在函數(shù)內(nèi)定義函數(shù))。
C語言沒有bool類型,需要自己來定義,同時IsPrime函數(shù)的變量i重復(fù)定義了修改如下。
聲明和定義不是一回事!聲明只是簽名,定義才為函數(shù)提供真正的代碼。
未定義標(biāo)識符解決方法如下:點擊菜單欄中的項目,然后點擊屬性。也可以在在右側(cè)資源窗口中右鍵該項目,點擊屬性。然后點擊C/C++,選擇優(yōu)化。然后選擇優(yōu)化中的已禁用(/Od),確定。
1、您好!很高興能回答您的問題。因為該main函數(shù)不需要返回值,所以可以省略前面的數(shù)據(jù)類型,如void main(),也沒有返回值。返回值的機制:是返回給主調(diào)進程,使主調(diào)進程得知被調(diào)用程序的運行結(jié)果,例如return 0;。
2、嵌套函數(shù)不在C標(biāo)準(zhǔn)里面,所以并不是所有C編譯器都支持的。比如VC就不支持。
3、在類里定義了i,那你在main函數(shù)里使用要通過那個類的對象來調(diào)用啊。
4、你把大括號的位置放錯了,sushu函數(shù)被定義在了main函數(shù)里面,但是按照C語言的規(guī)定,函數(shù)不允許嵌套定義,所以你的sushu相當(dāng)于沒有定義(不知為何你的編譯器沒有報錯說不允許在函數(shù)內(nèi)定義函數(shù))。
5、不用,一般函數(shù)都是獨立的,不用在函數(shù)內(nèi)部定義,在函數(shù)內(nèi)部定義會使代碼看起來非常亂,函數(shù)在main()函數(shù)上面,就不用申明;函數(shù)在main()下面就要先在main()的上方聲明。
1、就是如果返回值類型如果不寫的話,默認返回Int類數(shù)據(jù)。所以,自定義函數(shù)需要標(biāo)注返回類型,否則得到的值不正確。
2、C語言程序中,若函數(shù)無返回值,則應(yīng)該對函數(shù)說明的類型是void。如果函數(shù)所體現(xiàn)的計算不需要返回結(jié)果,則數(shù)據(jù)類型可以指定為void類型。
3、C語言中,如果要函數(shù)不返回值,則應(yīng)該吧函數(shù)的類型定義為“void”。在將函數(shù)定義為void類型的情況下在主調(diào)函數(shù)中調(diào)用該函數(shù),該函數(shù)調(diào)用表達式不能被用作子表達式給其他變量賦值。
4、函數(shù) 聲明 時 定下的 類型。例如, 調(diào)用 int k;k = scanf(%d %d,&x,&y); // 返回整型。若寫:scanf(%d %d,&x,&y);等于:(void) scanf(%d %d,&x,&y); // 強制轉(zhuǎn)換,丟棄了返回值。
1、提示的錯誤是函數(shù)沒有定義,在你的main()函數(shù)里面用到了fork()函數(shù),但是你并沒有定義它,所以編譯器就不知道這個fork是個什么東西。你可以在下面定義一下這個函數(shù)。
2、C語言沒有bool類型,需要自己來定義,同時IsPrime函數(shù)的變量i重復(fù)定義了修改如下。
3、你把大括號的位置放錯了,sushu函數(shù)被定義在了main函數(shù)里面,但是按照C語言的規(guī)定,函數(shù)不允許嵌套定義,所以你的sushu相當(dāng)于沒有定義(不知為何你的編譯器沒有報錯說不允許在函數(shù)內(nèi)定義函數(shù))。
出現(xiàn)該錯誤的原因為編譯時只變編譯了源文件的一部分,故在鏈接時無法從編譯好的目標(biāo)代碼中找到print函數(shù),所以出錯。根據(jù)你的源文件結(jié)構(gòu),個人推薦先單獨編譯源文件為多個object文件,再統(tǒng)一鏈接。
變量類型沒有指定。指定類型的方式與C++混淆了,特別是在.c文件中容易出現(xiàn)這種錯誤。變量指定了類型,但是與使用的變量名不符合,使用的變量名會提示為未定義。
但是按照C語言的規(guī)定,函數(shù)不允許嵌套定義,所以你的sushu相當(dāng)于沒有定義(不知為何你的編譯器沒有報錯說不允許在函數(shù)內(nèi)定義函數(shù))。解決方法是把你最后面多出來的大括號移到main函數(shù)最后面。
-c 參數(shù)表示將源文件編譯成object(目標(biāo)文件)。 即 gcc -c foo.c 會編譯成 foo.o gcc 不加參數(shù)時會編譯且嘗試鏈接成可執(zhí)行文件,然而 foo.c 的代碼中沒有main函數(shù)的定義,所以最終無法成功鏈接,故報錯。
void err_sys(const char *, ... );這樣只是聲明了一下,沒有對其定義,當(dāng)然會報錯,這個就相當(dāng)于printf()的函數(shù),只是它自己定義了一個新的,你去stdio.h頭文件里看看printf()怎么定義的。
新聞名稱:c語言函數(shù)無定義 c語言中定義函數(shù)時如果未指定函數(shù)類型
本文URL:http://chinadenli.net/article25/diooeji.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供用戶體驗、外貿(mào)建站、網(wǎng)站策劃、網(wǎng)站改版、電子商務(wù)、網(wǎng)站收錄
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)