卖逼视频免费看片|狼人就干网中文字慕|成人av影院导航|人妻少妇精品无码专区二区妖婧|亚洲丝袜视频玖玖|一区二区免费中文|日本高清无码一区|国产91无码小说|国产黄片子视频91sese日韩|免费高清无码成人网站入口

c語(yǔ)言判斷指針是否為空 既然C語(yǔ)言函數(shù)的局部變量會(huì)被釋放,那為什么函數(shù)還可以把它return返回呢?

既然C語(yǔ)言函數(shù)的局部變量會(huì)被釋放,那為什么函數(shù)還可以把它return返回呢?看了下面兄弟的回信,我們只能說(shuō)他們一半是對(duì)的。真正的原因是abi(應(yīng)用程序二進(jìn)制接口)。ABI定義了與系統(tǒng)交互的細(xì)節(jié),如數(shù)據(jù)

既然C語(yǔ)言函數(shù)的局部變量會(huì)被釋放,那為什么函數(shù)還可以把它return返回呢?

看了下面兄弟的回信,我們只能說(shuō)他們一半是對(duì)的。

真正的原因是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名稱修改和同一平臺(tái)上編譯器之間的調(diào)用約定,但不包括跨平臺(tái)兼容性。

至于下面兄弟提到的eax save返回值,這只是X86的ABI規(guī)范。在其他CPU架構(gòu)平臺(tái)(如PowerPC)中,實(shí)現(xiàn)是不同的!--PowerPC,返回值存儲(chǔ)在R3寄存器中

暫時(shí)不懂你的代碼。

一個(gè)原則是,誰(shuí)是起點(diǎn)。

如果指向此函數(shù)中定義的臨時(shí)自動(dòng)數(shù)組,則返回本地?cái)?shù)組指針時(shí)一定會(huì)出現(xiàn)問(wèn)題,這就是所謂的內(nèi)存釋放問(wèn)題。

這樣,雖然指針?lè)祷?,但它指向的?nèi)容不再受代碼控制,這是非常危險(xiǎn)的。

但是如果Start是指main函數(shù)中聲明的數(shù)組,或者是全局或靜態(tài)數(shù)組(在這個(gè)函數(shù)中定義的靜態(tài)數(shù)組是可以的),或者是動(dòng)態(tài)分配方法得到的內(nèi)存空間沒(méi)有釋放,那么就沒(méi)有問(wèn)題,是完全合理合法的。

使用動(dòng)態(tài)分配方法時(shí),不使用時(shí)要注意釋放內(nèi)存空間,以免內(nèi)存泄漏。

C語(yǔ)言指針函數(shù)釋放內(nèi)存?

簡(jiǎn)而言之,指針是表示地址的無(wú)符號(hào)整數(shù)。

所以僅僅理解指針是不夠的。您還需要知道指針指向的數(shù)據(jù)空間是如何排列的。這可能涉及到一些與特定CPU/OS相關(guān)的知識(shí)。如果我們能用計(jì)算機(jī)體系結(jié)構(gòu)的知識(shí)來(lái)理解它,它會(huì)更深刻、更準(zhǔn)確。

例如:

如何存儲(chǔ)float/double/long double?

如何在數(shù)據(jù)空間中組織陣列?

字符串是如何存儲(chǔ)的?

如何存儲(chǔ)結(jié)構(gòu)和聯(lián)合體?

位域組織

具體CPU相關(guān)部分如下:

整數(shù)的存儲(chǔ)將涉及CPU大小的指定

浮點(diǎn)數(shù)的存儲(chǔ)直接關(guān)系到FPU的設(shè)計(jì)

此外,還有一些擴(kuò)展知識(shí),涉及內(nèi)存的分配和釋放:如何在程序中分配內(nèi)存?(malloc/free)

什么是堆和堆棧?

總而言之:指針是地址和整數(shù)。但要充分利用它,我們需要了解計(jì)算機(jī)存儲(chǔ)空間的分配。困難在這里,突破在這里。