js return用法總結(jié) 在C語言中,定義一個(gè)函數(shù)后,return的用法具體是怎么呢,一直都沒懂?
在C語言中,定義一個(gè)函數(shù)后,return的用法具體是怎么呢,一直都沒懂?只需起草一個(gè)程序#include“iostream”使用命名空間STD void main(){int x,y cout<&
在C語言中,定義一個(gè)函數(shù)后,return的用法具體是怎么呢,一直都沒懂?
只需起草一個(gè)程序#include“iostream”使用命名空間STD void main(){int x,y cout<<shuchu(x,y)<<ndl}int Shuchu(int x,int y){z=x,y return z}現(xiàn)在讓我們來解釋一下:main函數(shù)是輸出函數(shù)的返回值。在shuchu()函數(shù)中,X和y的值要賦給Z。由于shuchu是用定義為int的返回值聲明的,所以Z是int。在shuchu()函數(shù)中,返回的目的是用Z表示函數(shù)的值,即我返回Z,那么shuchu()的值就是Z。依此類推。
在一個(gè)被調(diào)用函數(shù)中,關(guān)于return語句使用的?
如果被調(diào)用函數(shù)可以是無返回類型,則不需要返回值或返回語句。被調(diào)用函數(shù)可以有兩個(gè)返回語句,但只能執(zhí)行一個(gè)返回語句,并且只能返回一個(gè)值。Malloc指令可用于打開動(dòng)態(tài)內(nèi)存空間以返回?cái)?shù)組。如果要返回多個(gè)值,最簡單的方法就是用全局變量傳遞參數(shù)
]看完下面我哥的回復(fù),我只能說一半的答案是正確的。
真正的原因是abi(應(yīng)用程序二進(jìn)制接口)。
ABI定義了與系統(tǒng)交互的細(xì)節(jié),如數(shù)據(jù)類型、大小和對齊方式;調(diào)用約定(控制函數(shù)的參數(shù)傳遞方向、可變長度處理、堆棧清理體以及如何接受返回值等);系統(tǒng)調(diào)用的編碼以及應(yīng)用程序如何對操作系統(tǒng)進(jìn)行系統(tǒng)調(diào)用系統(tǒng);以及采用完整ABI操作系統(tǒng)基本格式、程序庫等的第二代對象文件。完整的ABI,如英特爾二進(jìn)制兼容標(biāo)準(zhǔn)(IBCs),允許支持它的操作系統(tǒng)上的程序在支持此ABI的其他操作系統(tǒng)上運(yùn)行,而無需修改。
其他ABI標(biāo)準(zhǔn)化細(xì)節(jié)包括C名稱修改和同一平臺(tái)上編譯器之間的調(diào)用約定,但不包括跨平臺(tái)兼容性。
至于下面兄弟提到的eax save返回值,這只是X86的ABI規(guī)范。在其他CPU架構(gòu)平臺(tái)(如PowerPC)中,實(shí)現(xiàn)是不同的!--在PowerPC中,返回值存儲(chǔ)在R3寄存器中