日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

函數(shù)返回值return,c語言return

return在C語言中不是必須的 。C語言中的函數(shù)定義分為函數(shù)入口和函數(shù)出口 。
C語言中寫return 0;是不是都可以省略?

函數(shù)返回值return,c語言return


看情況 。return在C語言中不是必須的 。C語言中的函數(shù)定義分為函數(shù)入口和函數(shù)出口 。當(dāng)有入口參數(shù)或者出口參數(shù)時(shí),需要說明參數(shù)的數(shù)據(jù)類型 。如定義一個(gè)延時(shí)函數(shù),入口參數(shù)為延時(shí)時(shí)間,延時(shí)后不需要返回參數(shù) 。因此可以定義如下:void delayms(unsigned int T){...}void代表不需要返回值,也就是不需要使用return 。
unsigned int T代表入口參數(shù) 。以下四個(gè)代碼都能正確運(yùn)行#include main(){double grade[200];double sum,avg,temp;int count,i,n;i=0;count=0;sum=0;printf("請依次輸入每個(gè)同學(xué)的成績,輸入-1結(jié)束\n");scanf("%lf 。
既然C語言函數(shù)的局部變量會(huì)被釋放,那為什么函數(shù)還可以把它return返回呢?
函數(shù)返回值return,c語言return


看了底下兄弟的答復(fù),只能說答對了一半 。真正的原因在于ABI(應(yīng)用程序二進(jìn)制接口) 。ABI定義了與系統(tǒng)交互的細(xì)節(jié):如數(shù)據(jù)類型、大小和對齊;調(diào)用約定(控制函數(shù)的參數(shù)的傳遞方向、可變長度處理、堆棧清理主體以及如何接受返回值等);系統(tǒng)調(diào)用的編碼和一個(gè)應(yīng)用如何向操作系統(tǒng)進(jìn)行系統(tǒng)調(diào)用;以及在一個(gè)完整的操作系統(tǒng)ABI中,目標(biāo)文件的二進(jìn)制格式、程序庫等等 。
【函數(shù)返回值return,c語言return】一個(gè)完整的ABI,像Intel二進(jìn)制兼容標(biāo)準(zhǔn) (iBCS),允許支持它的操作系統(tǒng)上的程序不經(jīng)修改在其他支持此ABI的操作體統(tǒng)上運(yùn)行 。其他的 ABI 標(biāo)準(zhǔn)化細(xì)節(jié)還包括 C名稱修飾 ,和同一個(gè)平臺(tái)上的編譯器之間的調(diào)用約定,但是不包括跨平臺(tái)的兼容性 。至于底下兄弟所說的EAX保存返回值,這個(gè)只是X86的ABI規(guī)范,在PowerPC等其他CPU架構(gòu)平臺(tái),實(shí)現(xiàn)是不一樣的!——PowerPC下,返回值是保存在R3寄存器中的 。

    推薦閱讀