成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

深度剖析C++開發(fā)工具種種問題

開發(fā) 后端
C++開發(fā)工具制造者Bjarne Stroustrup博士在一次關(guān)于C++的討論中提到:“C++在經(jīng)過前10年(1985-1994)的爆炸性增長之后

Visual C++ 6.0就是微軟公司推出的C++開發(fā)工具,是使用最廣的開發(fā)工具。本節(jié)介紹Visual C++ 6.0工具的開發(fā)環(huán)境和開發(fā)流程,下面就對C++開發(fā)工具進(jìn)行學(xué)習(xí)研究,歡迎大家切磋。

1. 申請方式

Stack:由系統(tǒng)自動分配。 例如,聲明在函數(shù)中一個局部變量 int b;系統(tǒng)自動在棧中為b開辟空間 Heap:需要程序員自己申請,并指明大小,在c中malloc函數(shù)如p1 = (char *)malloc(10); 在C++中用new運算符如p2 = (char *)malloc(10);但是注意p1、p2本身是在棧中的。

2. 申請后系統(tǒng)的響應(yīng)

棧:只要棧的剩余空間大于所申請空間,系統(tǒng)將為程序提供內(nèi)存,否則將報異常提示棧溢出。

堆:首先應(yīng)該知道操作系統(tǒng)有一個記錄空閑內(nèi)存地址的鏈表,當(dāng)系統(tǒng)收到程序的申請時,會遍歷該鏈表,尋找***個空間大于所申請空間的堆結(jié) 點,然后將該結(jié)點從空閑結(jié)點鏈表中刪除,并將該結(jié)點的空間分配給程序,另外,對于大多數(shù)系統(tǒng),會在這塊內(nèi)存空間中的首地址處記錄本次分配的大小,這樣,代 碼中的delete語句才能正確的釋放本內(nèi)存空間。另外,由于找到的堆結(jié)點的大小不一定正好等于申請的大小,系統(tǒng)會自動的將多余的那部分重新放入空閑鏈表中。

3. 2.3申請大小的限制

棧:在Windows下,棧是向低地址擴(kuò)展的數(shù)據(jù)結(jié)構(gòu),是一塊連續(xù)的內(nèi)存的區(qū)域。這句話的意思是棧頂?shù)牡刂泛蜅5?**容量是系統(tǒng)預(yù)先規(guī)定好的,在 WINDOWS下,棧的大小是2M(也有的說是1M,總之是一個編譯時就確定的常數(shù)),如果申請的空間超過棧的剩余空間時,將提示overflow。因此,能從棧獲得的空間較小。

堆:堆是向高地址擴(kuò)展的數(shù)據(jù)結(jié)構(gòu),是不連續(xù)的內(nèi)存區(qū)域。這是由于系統(tǒng)是用鏈表來存儲的空閑內(nèi)存地址的,自然是不連續(xù)的,而鏈表的遍歷方向是由低地址向高地址。堆的大小受限于計算機系統(tǒng)中有效的虛擬內(nèi)存。由此可見,堆獲得的空間比較靈活,也比較大。

4. 申請效率的比較:

棧由系統(tǒng)自動分配,速度較快。但程序員是無法控制的。

堆是由new分配的內(nèi)存,一般速度比較慢,而且容易產(chǎn)生內(nèi)存碎片,不過用起來最方便.

另外,在WINDOWS下,***的方式是用VirtualAlloc分配內(nèi)存,他不是在堆,也不是在棧是直接在進(jìn)程的地址空間中保留一快內(nèi)存,雖然用起來最不方便。但是速度快,也最靈活

5. 堆和棧中的存儲內(nèi)容

棧: 在函數(shù)調(diào)用時,***個進(jìn)棧的是主函數(shù)中后的下一條指令(函數(shù)調(diào)用語句的下一條可執(zhí)行語句)的地址,然后是函數(shù)的各個參數(shù),在大多數(shù)的C編譯器中,參數(shù)是由右往左入棧的,然后是函數(shù)中的局部變量。注意靜態(tài)變量是不入棧的。 當(dāng)本次函數(shù)調(diào)用結(jié)束后,局部變量先出棧,然后是參數(shù),***棧頂指針指向最開始存的地址,也就是主函數(shù)中的下一條指令,程序由該點繼續(xù)運行。#t#

1.申請方式

Stack:由系統(tǒng)自動分配。 例如,聲明在函數(shù)中一個局部變量 int b;系統(tǒng)自動在棧中為b開辟空間 Heap:需要程序員自己申請,并指明大小,在c中malloc函數(shù)如p1 = (char *)malloc(10); 在C++中用new運算符如p2 = (char *)malloc(10);但是注意p1、p2本身是在棧中的。

2.申請后系統(tǒng)的響應(yīng)

棧:只要棧的剩余空間大于所申請空間,系統(tǒng)將為程序提供內(nèi)存,否則將報異常提示棧溢出。 堆:首先應(yīng)該知道操作系統(tǒng)有一個記錄空閑內(nèi)存地址的鏈表,當(dāng)系統(tǒng)收到程序的申請時,會遍歷該鏈表,尋找***個空間大于所申請空間的堆結(jié) 點,然后將該結(jié)點從空閑結(jié)點鏈表中刪除。

并將該結(jié)點的空間分配給程序,另外,對于大多數(shù)系統(tǒng),會在這塊內(nèi)存空間中的首地址處記錄本次分配的大小,這樣,代 碼中的delete語句才能正確的釋放本內(nèi)存空間。另外,由于找到的堆結(jié)點的大小不一定正好等于申請的大小,系統(tǒng)會自動的將多余的那部分重新放入空閑鏈表中。

3.2.3申請大小的限制

棧:在Windows下,棧是向低地址擴(kuò)展的數(shù)據(jù)結(jié)構(gòu),是一塊連續(xù)的內(nèi)存的區(qū)域。這句話的意思是棧頂?shù)牡刂泛蜅5?**容量是系統(tǒng)預(yù)先規(guī)定好的,在 WINDOWS下,棧的大小是2M(也有的說是1M,總之是一個編譯時就確定的常數(shù)),如果申請的空間超過棧的剩余空間時,將提示overflow。因此,能從棧獲得的空間較小。

堆:堆是向高地址擴(kuò)展的數(shù)據(jù)結(jié)構(gòu),是不連續(xù)的內(nèi)存區(qū)域。這是由于系統(tǒng)是用鏈表來存儲的空閑內(nèi)存地址的,自然是不連續(xù)的,而鏈表的遍歷方向是由低地址向高地址。堆的大小受限于計算機系統(tǒng)中有效的虛擬內(nèi)存。由此可見,堆獲得的空間比較靈活,也比較大。

4.申請效率的比較:

棧由系統(tǒng)自動分配,速度較快。但程序員是無法控制的。 堆是由new分配的內(nèi)存,一般速度比較慢,而且容易產(chǎn)生內(nèi)存碎片,不過用起來最方便. 另外,在WINDOWS下,***的方式是用VirtualAlloc分配內(nèi)存,他不是在堆,也不是在棧是直接在進(jìn)程的地址空間中保留一快內(nèi)存,雖然用起來最不方便。但是速度快,也最靈活

5.堆和棧中的存儲內(nèi)容

棧: 在函數(shù)調(diào)用時,***個進(jìn)棧的是主函數(shù)中后的下一條指令(函數(shù)調(diào)用語句的下一條可執(zhí)行語句)的地址,然后是函數(shù)的各個參數(shù),在大多數(shù)的C編譯器中,參數(shù)是由右往左入棧的,然后是函數(shù)中的局部變量。注意靜態(tài)變量是不入棧的。

當(dāng)本次函數(shù)調(diào)用結(jié)束后,局部變量先出棧,然后是參數(shù),***棧頂指針指向最開始存的地址,也就是主函數(shù)中的下一條指令,程序由該點繼續(xù)運行。C++開發(fā)工具一般是在堆的頭部用一個字節(jié)存放堆的大小。堆中的具體內(nèi)容有程序員安排。

責(zé)任編輯:chenqingxiang 來源: csdn
相關(guān)推薦

2010-01-08 17:01:46

C++開發(fā)工具

2010-01-08 15:06:35

JSON功能

2010-01-27 15:50:23

C++復(fù)雜性

2010-01-21 10:44:59

Visual C++

2010-01-28 16:31:54

C++類型

2010-01-06 10:42:18

JSON協(xié)議

2009-12-16 09:29:13

VS Team Sys

2010-01-11 15:02:10

Visual C++

2010-01-15 10:32:21

C++語言

2010-01-26 14:46:42

C++語言

2010-01-12 18:35:45

C++語言

2010-01-11 13:31:03

C++語言

2009-12-03 10:15:41

Visual Stud

2010-01-26 17:44:32

Visual C++開

2010-01-19 14:54:58

Visual C++

2010-01-26 17:16:33

C++應(yīng)用程序

2010-01-28 14:54:01

C++資源管理

2010-01-13 10:16:42

C++軟件

2017-04-11 08:50:22

應(yīng)用開發(fā)云服務(wù)開源

2010-01-11 17:43:23

C++程序設(shè)計
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 久久一区二区精品 | 91在线视频免费观看 | 男人天堂免费在线 | 黄色网址在线免费观看 | 成人免费观看男女羞羞视频 | 国产偷久久一级精品60部 | 国产一区二区在线观看视频 | 精品国产91 | 亚洲一区二区在线播放 | 亚洲高清一区二区三区 | 国产视频黄色 | 2018国产大陆天天弄 | 日韩日韩日韩日韩日韩日韩日韩 | 欧美成人高清 | 国产福利在线 | 九九热精品视频 | 在线三级电影 | 国产福利91精品一区二区三区 | 啪啪免费 | 成人综合一区二区 | 在线观看视频一区 | 亚洲精品免费在线 | 成人在线小视频 | 欧美aaaa视频 | 国产精品国产三级国产aⅴ原创 | 亚洲国产欧美一区二区三区久久 | 亚洲视频免费在线观看 | 国产欧美一区二区三区在线看 | 日韩色图视频 | 亚洲精品9999久久久久 | 中文字幕一区二区在线观看 | 日韩av成人 | 国产精品123区| 成人小视频在线观看 | 欧美一区视频 | 欧美黄色网 | 日本又色又爽又黄的大片 | 中文字幕一区二区三区在线乱码 | 成人在线免费视频观看 | 国产精品1区2区 | 三级国产三级在线 |