C語(yǔ)言沒(méi)有bool類型,需要自己來(lái)定義,同時(shí)IsPrime函數(shù)的變量i重復(fù)定義了修改如下。
創(chuàng)新互聯(lián)專注于阜平企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè)公司,電子商務(wù)商城網(wǎng)站建設(shè)。阜平網(wǎng)站建設(shè)公司,為阜平等地區(qū)提供建站服務(wù)。全流程按需網(wǎng)站開(kāi)發(fā),專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)
你把大括號(hào)的位置放錯(cuò)了,sushu函數(shù)被定義在了main函數(shù)里面,但是按照C語(yǔ)言的規(guī)定,函數(shù)不允許嵌套定義,所以你的sushu相當(dāng)于沒(méi)有定義(不知為何你的編譯器沒(méi)有報(bào)錯(cuò)說(shuō)不允許在函數(shù)內(nèi)定義函數(shù))。
變量類型沒(méi)有指定。指定類型的方式與C++混淆了,特別是在.c文件中容易出現(xiàn)這種錯(cuò)誤。變量指定了類型,但是與使用的變量名不符合,使用的變量名會(huì)提示為未定義。
出現(xiàn)該錯(cuò)誤的原因?yàn)榫幾g時(shí)只變編譯了源文件的一部分,故在鏈接時(shí)無(wú)法從編譯好的目標(biāo)代碼中找到print函數(shù),所以出錯(cuò)。根據(jù)你的源文件結(jié)構(gòu),個(gè)人推薦先單獨(dú)編譯源文件為多個(gè)object文件,再統(tǒng)一鏈接。
1、你把大括號(hào)的位置放錯(cuò)了,sushu函數(shù)被定義在了main函數(shù)里面,但是按照C語(yǔ)言的規(guī)定,函數(shù)不允許嵌套定義,所以你的sushu相當(dāng)于沒(méi)有定義(不知為何你的編譯器沒(méi)有報(bào)錯(cuò)說(shuō)不允許在函數(shù)內(nèi)定義函數(shù))。
2、聲明和定義不是一回事!聲明只是簽名,定義才為函數(shù)提供真正的代碼。
3、0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00}錯(cuò)誤的地方太多了。首先上面這句的#define去掉。其次在keil里面聲明語(yǔ)句必須在所有賦值語(yǔ)句之前,想這句 int i=0;必須放到main函數(shù)的第一句。其它的有沒(méi)有還沒(méi)有細(xì)看。
出現(xiàn)該錯(cuò)誤的原因?yàn)榫幾g時(shí)只變編譯了源文件的一部分,故在鏈接時(shí)無(wú)法從編譯好的目標(biāo)代碼中找到print函數(shù),所以出錯(cuò)。根據(jù)你的源文件結(jié)構(gòu),個(gè)人推薦先單獨(dú)編譯源文件為多個(gè)object文件,再統(tǒng)一鏈接。
變量類型沒(méi)有指定。指定類型的方式與C++混淆了,特別是在.c文件中容易出現(xiàn)這種錯(cuò)誤。變量指定了類型,但是與使用的變量名不符合,使用的變量名會(huì)提示為未定義。
void err_sys(const char *, ... );這樣只是聲明了一下,沒(méi)有對(duì)其定義,當(dāng)然會(huì)報(bào)錯(cuò),這個(gè)就相當(dāng)于printf()的函數(shù),只是它自己定義了一個(gè)新的,你去stdio.h頭文件里看看printf()怎么定義的。
Linux編譯動(dòng)態(tài)庫(kù)時(shí)出現(xiàn)未定義main函數(shù)的問(wèn)題,很可能是因?yàn)榫幾g器默認(rèn)把源文件作為可執(zhí)行程序進(jìn)行編譯。
在定義函數(shù)的.c文件中包含聲明函數(shù)的.h文件。
C語(yǔ)言沒(méi)有bool類型,需要自己來(lái)定義,同時(shí)IsPrime函數(shù)的變量i重復(fù)定義了修改如下。