c語言字符串追加字符 既然C語言函數(shù)的局部變量會被釋放,那為什么函數(shù)還可以把它return返回呢?
既然C語言函數(shù)的局部變量會被釋放,那為什么函數(shù)還可以把它return返回呢?看了下面兄弟的回信,我們只能說他們一半是對的。真正的原因是abi(應(yīng)用程序二進(jìn)制接口)。ABI定義了與系統(tǒng)交互的細(xì)節(jié),如數(shù)據(jù)
既然C語言函數(shù)的局部變量會被釋放,那為什么函數(shù)還可以把它return返回呢?
看了下面兄弟的回信,我們只能說他們一半是對的。
真正的原因是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)上運行,而無需修改。
其他ABI標(biāo)準(zhǔn)化細(xì)節(jié)包括C名稱修改和同一平臺上編譯器之間的調(diào)用約定,但不包括跨平臺兼容性。
至于下面兄弟提到的eax save返回值,這只是X86的ABI規(guī)范。在其他CPU架構(gòu)平臺(如PowerPC)中,實現(xiàn)是不同的!--PowerPC,返回值存儲在R3寄存器中
C語言的add函數(shù)是用戶定義的,不是標(biāo)準(zhǔn)函數(shù),一般定義兩個數(shù)字進(jìn)行加法
substr是C語言的函數(shù),主要功能是復(fù)制子字符串,要求從指定的位置開始,并且有指定的長度