這是針對(duì)函數(shù)而言的,c中函數(shù)就是一個(gè)表達(dá)式,一個(gè)復(fù)雜的表達(dá)式,既然是表達(dá)式,就要有表達(dá)式的值。
目前成都創(chuàng)新互聯(lián)已為千余家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)頁(yè)空間、網(wǎng)站托管、服務(wù)器托管、企業(yè)網(wǎng)站設(shè)計(jì)、賈汪網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶(hù)導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶(hù)和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。
準(zhǔn)確的說(shuō),函數(shù)這個(gè)名稱(chēng)不太準(zhǔn)確,容易誤導(dǎo)人。
即通常所說(shuō)的主函數(shù)。double 是一種類(lèi)型(長(zhǎng)精度實(shí)型),可以用該類(lèi)型定義函數(shù),此時(shí)該函數(shù)的返回類(lèi)型也必須為double類(lèi)型的變量;也可以用該類(lèi)型定義變量,如double a,b; 此時(shí)可以用長(zhǎng)精度實(shí)型數(shù)據(jù)賦值給a和b。
void表示無(wú)返回值的意思。C語(yǔ)言中,為了明確表示函數(shù)沒(méi)有返回值,應(yīng)將函數(shù)類(lèi)型定義為void(空類(lèi)型)。
區(qū)別就是有無(wú)返回值。寫(xiě)代碼時(shí),函數(shù)有返回值,就用int,沒(méi)有返回值就用void。有的編譯器必須main要有返回值 int , 那就寫(xiě)成int main 。你可以都寫(xiě)成int main ,然后在后面加個(gè)return 0 ;他倆在作用上沒(méi)什么區(qū)別。
void意思是主函數(shù)(main)的數(shù)據(jù)類(lèi)型空返回值。void的字面意思是“無(wú)類(lèi)型”,void *則為“無(wú)類(lèi)型指針”,void *可以指向任何類(lèi)型的數(shù)據(jù)。
1、C語(yǔ)言中空值一般是針對(duì)指針而言,空值用NULL表示,表示不指向任何內(nèi)存。
2、在 C 和 C++ 中,不接收任何參數(shù)也不返回任何信息的主函數(shù)原型為“void main(void)”。可能正是因?yàn)檫@個(gè),所以很多人都誤認(rèn)為如果不需要程序返回任何信息時(shí)可以把 main 函數(shù)定義成 void main(void) 。
3、空函數(shù)是不是沒(méi)有內(nèi)容的函數(shù)吧,不會(huì)閑來(lái)無(wú)事自己寫(xiě)個(gè)空函數(shù)吧,寫(xiě)上的話(huà)也是為了暫時(shí)記憶有個(gè)這樣的函數(shù),內(nèi)容以后再添加上來(lái)吧;無(wú)參函數(shù),無(wú)參函數(shù)不引用參數(shù),但是函數(shù)是有內(nèi)容要執(zhí)行的。
4、C語(yǔ)言和C++對(duì)大小寫(xiě)是敏感的,也就知是說(shuō)null和NULL是區(qū)別對(duì)待的。NULL(如已宏定義)代表空地址,null(如沒(méi)宏定義)只是一個(gè)符號(hào)。其實(shí)null和NULL都是字符串,具體看它們宏定義被定義成為什么值。
5、也就是如果當(dāng)前語(yǔ)言是C++,則直接定義NULL為 0值,如果是其他(可能是C),則明確定義為 void 0,因?yàn)镃++編譯器會(huì)自動(dòng)轉(zhuǎn)換。#ifndef 宏命令表示:如果當(dāng)前環(huán)境中其他模塊還未定義NULL,這就定義它。
從標(biāo)準(zhǔn)規(guī)范來(lái)看:C語(yǔ)言允許函數(shù)里聲明函數(shù),但是不建議這么寫(xiě),因?yàn)椴焕诙辔臋n的組織。C語(yǔ)言禁止函數(shù)里定義函數(shù),但是個(gè)別編譯器卻沒(méi)遵循標(biāo)準(zhǔn)。
就C語(yǔ)言真正的標(biāo)準(zhǔn)來(lái)說(shuō),函數(shù)內(nèi)聲明函數(shù)是不合法的。但是實(shí)際上,C語(yǔ)言可以在函數(shù)內(nèi)部完成函數(shù)的聲明和定義,但除了定義它的函數(shù)之外,其他函數(shù)不能調(diào)用該函數(shù)。
標(biāo)準(zhǔn)的C語(yǔ)言編譯器是允許在函數(shù)里面聲明函數(shù)的。但是為了移植方便,也不建議函數(shù)里面聲明函數(shù)。
可以在函數(shù)中聲明函數(shù)(嵌套聲明),但是不能在函數(shù)中定義函數(shù)(嵌套定義)。p.s.:有些編譯器允許嵌套定義,但是最好不要嵌套定義,因?yàn)镃標(biāo)準(zhǔn)規(guī)定不能嵌套定義。