最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C/C++: Inline function, calloc 對(duì)比 malloc

 更新時(shí)間:2016年07月06日 17:50:31   投稿:lqh  
以下是對(duì)c/c++中的malloc函數(shù)與calloc函數(shù)的區(qū)別以及它們之間的聯(lián)系進(jìn)行了介紹,需要的朋友可以過(guò)來(lái)參考下

Inline function is like a macro definition. When it was be called in another function, the control right will not be changed to this function. The compiler will just replace the line of inline function with the actual content of the function. We use inline function to eliminate the cost of calling a function.

內(nèi)聯(lián)函數(shù)從源代碼層看,有函數(shù)的結(jié)構(gòu),而在編譯后,卻不具備函數(shù)的性質(zhì)。內(nèi)聯(lián)函數(shù)不是在調(diào)用時(shí)發(fā)生控制轉(zhuǎn)移,而是在編譯時(shí)將函數(shù)體嵌入在每一個(gè)調(diào)用處。編譯時(shí),類似宏替換,使用函數(shù)體替換調(diào)用處的函數(shù)名。內(nèi)聯(lián)擴(kuò)展是用來(lái)消除函數(shù)調(diào)用時(shí)的時(shí)間開(kāi)銷。它通常用于頻繁執(zhí)行的函數(shù)。 一個(gè)小內(nèi)存空間的函數(shù)非常受益。

帶參數(shù)的宏定義的一般形式如下:

#define <宏名>(<參數(shù)表>) <宏體>

 其中, <宏名>是一個(gè)標(biāo)識(shí)符,<參數(shù)表>中的參數(shù)可以是一個(gè),也可以是多個(gè),視具體情況而定,當(dāng)有多個(gè)參數(shù)的時(shí)候,每個(gè)參數(shù)之間用逗號(hào)分隔。<宏體>是被替換用的字符串,宏體中的字符串是由參數(shù)表中的各個(gè)參數(shù)組成的表達(dá)式。

#define SUB(a,b) a-b

 如果在程序中出現(xiàn)如下語(yǔ)句:

result=SUB(2, 3);

 則被替換為:

result=2-3;

calloc與malloc的區(qū)別:

calloc在動(dòng)態(tài)分配完內(nèi)存后,自動(dòng)初始化該內(nèi)存空間為零,而malloc不初始化,里邊數(shù)據(jù)是隨機(jī)的垃圾數(shù)據(jù)。

用法:

void *calloc(size_t n, size_t size);

一般使用后要使用 free(起始地址的指針) 對(duì)內(nèi)存進(jìn)行釋放,不然內(nèi)存申請(qǐng)過(guò)多會(huì)影響計(jì)算機(jī)的性能,以至于得重啟電腦。如果使用過(guò)后不清零,還可以使用指針對(duì)該塊內(nèi)存進(jìn)行訪問(wèn).

相關(guān)文章

最新評(píng)論

高碑店市| 昭通市| 鄂州市| 江山市| 赣榆县| 南和县| 林西县| 达日县| 益阳市| 黔江区| 兰西县| 乌拉特后旗| 达州市| 阳西县| 元氏县| 九江县| 武乡县| 衢州市| 武隆县| 东海县| 红原县| 颍上县| 平定县| 泗水县| 嵊州市| 平潭县| 内江市| 长泰县| 滕州市| 禄丰县| 孝昌县| 什邡市| 衡东县| 旌德县| 奇台县| 新乡市| 德庆县| 科技| 德昌县| 龙海市| 新龙县|