看了下面兄弟的回信,我們只能說(shuō)他們一半是對(duì)的。
創(chuàng)新互聯(lián)專(zhuān)注于企業(yè)全網(wǎng)營(yíng)銷(xiāo)推廣、網(wǎng)站重做改版、息縣網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5高端網(wǎng)站建設(shè)、購(gòu)物商城網(wǎng)站建設(shè)、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性?xún)r(jià)比高,為息縣等各大城市提供網(wǎng)站開(kāi)發(fā)制作服務(wù)。真正的原因是abi(應(yīng)用程序二進(jìn)制接口)。
ABI定義了與系統(tǒng)交互的細(xì)節(jié),如數(shù)據(jù)類(lèi)型、大小和對(duì)齊方式;調(diào)用約定(控制函數(shù)的參數(shù)傳遞方向、可變長(zhǎng)度處理、堆棧清理體以及如何接受返回值等);系統(tǒng)調(diào)用的編碼以及應(yīng)用程序如何對(duì)操作系統(tǒng)進(jìn)行系統(tǒng)調(diào)用系統(tǒng);以及采用完整ABI操作系統(tǒng)基本格式、程序庫(kù)等的第二代對(duì)象文件。完整的ABI,如英特爾二進(jìn)制兼容標(biāo)準(zhǔn)(IBCs),允許支持它的操作系統(tǒng)上的程序在支持此ABI的其他操作系統(tǒng)上運(yùn)行,而無(wú)需修改。
其他ABI標(biāo)準(zhǔn)化細(xì)節(jié)包括C名稱(chēng)修改和同一平臺(tái)上編譯器之間的調(diào)用約定,但不包括跨平臺(tái)兼容性。
至于下面兄弟提到的eaxsave返回值,這只是X86的ABI規(guī)范。在其他CPU架構(gòu)平臺(tái)(如PowerPC)中,實(shí)現(xiàn)是不同的!--在PowerPC中,返回值存儲(chǔ)在R3寄存器中,主函數(shù)的return語(yǔ)句的返回值返回給操作系統(tǒng)。根據(jù)C/C標(biāo)準(zhǔn),返回0;表示程序正常退出。其他值表示錯(cuò)誤退出。此返回值適用于操作系統(tǒng)。
主函數(shù)的return語(yǔ)句的返回值到底返回哪里?在通用C教材中,有更詳細(xì)的介紹。返回值的形式取決于函數(shù)的類(lèi)型。返回值可以是數(shù)據(jù)、指針、字符串等,在調(diào)用該函數(shù)時(shí),可以根據(jù)返回值判斷函數(shù)是否正確執(zhí)行,也可以得到所需的信息。舉個(gè)例子,
intadd(intx,inty)
{
inta;
a=xy;
returna
]這個(gè)函數(shù)返回兩個(gè)數(shù)字相加的結(jié)果。如果在函數(shù)中調(diào)用此函數(shù),則可以返回兩個(gè)數(shù)據(jù)之和,例如
intget。Add()
{
intb;
B=Add(1,2);
printf(\%d\n“)
return0
}]調(diào)用Add函數(shù)時(shí),函數(shù)返回a,調(diào)用時(shí)得到Add指定B=Add();然后a返回B,這是所需12的結(jié)果。在get中,如果add函數(shù)的返回值為0,則可以根據(jù)函數(shù)的返回值判斷函數(shù)是否執(zhí)行成功,例如
intmain()
{
INTC
C=getAdd()
if(C==0)
{
printf(“OK\n”)}
else
{
printf(“error\n”)}
這里,您知道getAdd的返回值是0。如果調(diào)用此函數(shù)的返回值不為0,則此函數(shù)執(zhí)行時(shí)出錯(cuò)。
當(dāng)然,函數(shù)的返回值也可以是指針,它包含您想要的內(nèi)容。需要注意的是,有些函數(shù)沒(méi)有返回值,例如,void函數(shù)沒(méi)有返回值。
我只是舉個(gè)例子來(lái)說(shuō)明這個(gè)問(wèn)題。你需要自己找到細(xì)節(jié)。
C語(yǔ)言的返回值返回到什么地方了?所謂函數(shù)返回值是指函數(shù)在操作后向調(diào)用父函數(shù)或系統(tǒng)返回一個(gè)值。此值可以是各種變量類(lèi)型。舉一個(gè)簡(jiǎn)單的例子:intadd(inta,intb){return(a)B)}intmain(){intresresres=add(3,4)printf(“%d”,RES)return0}在主函數(shù)main中調(diào)用子函數(shù)add并傳遞參數(shù)3和4,add通過(guò)運(yùn)算得到7個(gè)值,將return語(yǔ)句得到的值返回給它使用的調(diào)用函數(shù),在中間,返回值用于給出賦值。函數(shù)返回值可以理解為解決問(wèn)題后得到的結(jié)論。把結(jié)論給別人就像在書(shū)上寫(xiě)一個(gè)定理給別人用。
C語(yǔ)言中函數(shù)的返回值是什么意思,是返回到哪里去?怎么判斷?Return是向函數(shù)返回值并終止函數(shù)。例如:function(){return10//此時(shí),函數(shù)a的值將等于10,函數(shù)中的以下內(nèi)容將不再執(zhí)行文檔.寫(xiě)入(50)//因?yàn)樯厦嬉呀?jīng)返回了,所以這個(gè)代碼不會(huì)被執(zhí)行}至于什么時(shí)候使用它,這取決于您希望函數(shù)做什么。如果你想讓它返回一個(gè)值,它就會(huì)返回,不,如果你想讓他返回,你就不會(huì)!例如,要對(duì)函數(shù)執(zhí)行加法操作,它需要返回一個(gè)值。然后,調(diào)用函數(shù)a(B,c){returnB,c}:varabc=a(5,80)。此時(shí),ABC變量的值將為85。如果要直接輸出結(jié)果,請(qǐng)不要返回值,然后使用函數(shù)a(B,c){文檔.寫(xiě)入(bc)此時(shí)調(diào)用varabc=a(5,80)時(shí),頁(yè)面將輸出85,但ABC沒(méi)有值。當(dāng)然,JS中的return不必在函數(shù)中使用。有時(shí)它還可以用來(lái)阻止某些操作,例如表單提交。如果表單提交事件返回false,則不會(huì)提交表單:onsubmit=“returnfalse”