Basic–What is Compile unit?

當一個c或cpp檔案在編譯時間,前置處理器首先遞迴包含標頭檔,形成一個含有所有必要資訊的單個源檔案,這個源檔案就是一個編譯單元。這個編譯單元會被編譯成為一個與cpp檔案名稱同名的目標檔案(.o或是.obj)。串連程式把不同編譯單元中產生的符號聯絡起來,構成一個可執行程式。經過預先處理之後的檔案(這個是記憶體中的臨時檔案)#include在預先處理時被展開,宏也一樣一個經過展開後的.cpp檔案就是一個編譯單元一個xx.h(經過預先處理) + 一個xx.cpp =

棧對象、堆對象、靜態對象的比較

  棧對象的優勢是在適當的時候自動產生,又在適當的時候自動銷毀,不需要程式員操心;而且棧對象的建立速度一般較堆對象快,因為分配堆對象時,會調用operator new操作,operator

Load pdbs when you need it

    In debugging big software, if loading all pdbs in starting up it, it consumes too long time. But it's really good method because we can debug into the code section that really does the work in unfamilar area (usually with millions of

VS Tips (Advance part)

1. Rename feacp.dll to disable intellisense. You will find this file in Program files: ...."Microsoft Visual Studio 8"VC"vcpackages folder. 2. If you are still experiencing slowdowns due to .ncb file generation, try deleting the .ncb file for any

TCP和UDP的區別趣解

tcp串連就像打電話,兩者之間必須有一條不間斷的通路,資料不到達對方,對方就一直在等待,除非對方直接掛電話。先說的話先到,後說的話後到,有順序。udp就象寄一封信,發信者只管發,不管到。但是你的信封上必須寫明對方的地址。發信者和收信者之間沒有通路,靠郵電局聯絡。信發到時可能已經過了很久,也可能根本沒有發到。先發的信未必先到,後發的也未必後到。說的很簡單,具體的東西當然很複雜。但是java把所有的操作都封裝好了,用起來到挺方便的。 TCP---傳輸控制通訊協定,提供的是連線導向、可靠的位元組流服務

Outlook 常用快速鍵

 切換到郵件 CTRL + 1  切換到日曆 CTRL + 2  切換到通訊錄 Ctrl + 3  切換到任務 Ctrl + 4  切換到筆記 Ctrl + 5  建立約會 CTRL+SHIFT+A  建立連絡人 CTRL+SHIFT+C  建立日誌項 CTRL+SHIFT+J  建立會議 CTRL+SHIFT+Q  建立信件 CTRL+SHIFT+M  建立筆記 CTRL+SHIFT+N  建立任務 CTRL + SHIFT + K  拼字檢查 F7  轉寄信件 CTRL + F  搜尋 F4

如何禁止產生stack對象或heap對象

  禁止產生堆對象   上面已經提到,你決定禁止產生某種類型的堆對象,這時你可以自己建立一個資源封裝類,該類對象只能在棧中產生,這樣就能在異常的情況下自動釋放封裝的資源。  那麼怎樣禁止產生堆對象了?我們已經知道,產生堆對象的唯一方法是使用new操作,如果我們禁止使用new不就行了麼。再進一步,new操作執行時會調用operator new,而operator new是可以重載的。方法有了,就是使new operator 為private,為了對稱,最好將operator

Basic-時間複雜度和空間複雜度

演算法分析 同一問題可用不同演算法解決,而一個演算法的品質優劣將影響到演算法乃至程式的效率。演算法分析的目的在於選擇合適演算法和改進演算法。一個演算法的評價主要從時間複雜度和空間複雜度來考慮。

VS Tips (Basic part)

Part1:1. 如何解決Visual C++ 6.0不正確串連的問題情景:明明改動了一個檔案,卻要把整個項目全部重新編譯連結一次。剛剛連結好,一運行,又提示重新編譯連結一次。這是因為出現了未來檔案(修改時間和建立時間比系統時間晚)的緣故。可以這樣處理:找到工程檔案夾下的debug目錄,將建立和修改時間都比系統時間的檔案全部刪除,然後再從新“Rebuild All”一次。2. 引起LNK2001的常見錯誤都有哪些遇到的LNK2001錯誤主要為:unresolved external

ImageX instead of Ghost

微軟封裝工具ImageX的應用!本文中我們將會介紹imagex的幾個基本應用:映像建立、映像壓縮、映像檔案拆分以及應用映像。本文的所有操作都需要在Windows PE下進行。雖然這可能沒有在DOS環境下方便,不過用Windows PE取代DOS已經是一個必然的趨勢,同時,Windows PE環境也使imagex的適用範圍更廣。我們都知道,傳統的基於磁碟扇區的映像工具一般只能在Windows作業系統之外運行,因此都使用了專用的恢複環境,例如軟體開發商提供的特殊版本的

Basic–lib&dll

       程式員在建立一個DLL檔案時,連結程式會自動產生一個與之對應的LIB匯入檔案。該lib檔案包含了每一個DLL匯出函數的符號名和可選的標識號,以及對應的DLL檔案名稱(但不是完全的路徑名),但是並不含有實際的代碼。LIB檔案在使用其對應dll的應用程式中被用於link階段,應用程式中的調用函數與LIB檔案中匯出符號相匹配,這些符號或標識號進入到產生的EXE檔案中。當應用程式運行過程中需要載入DLL檔案時,Windows根據這些資訊發現並載入DLL,然後通過符號名或標識號實現對DLL函

Realizing 4 GB of Address Space[MSDN]

Realizing 4 GB of Address SpaceNOte:  every process has its own page directory.Translating a virtual address from page directory to page frame is similar to traversing a b-tree structure, where the page directory is the root; page tables are the

Basic–BIOS & CMOS

BIOS是軟體、是程式! CMOS是晶片、是硬體! 實際上我們是通過BIOS這個程式,去設定CMOS裡的參數的。CMOS是一塊晶片,整合在主板上,裡面儲存著重要的開機參數,而儲存是需要電力來維持的,所以每一塊主板上都會有一顆紐扣電池,叫CMOS電池。CMOS裡存放著參數,要設定它,我們必須通過程式把設定好的參數寫入CMOS,所以,就利用BIOS程式來讀寫。 BIOS是什嗎? BIOS(Basic Input/Output System—基本輸出入系統

How Default Heap Of Process Grows

A Default Heap That Grows and SpreadsIn its simplest form, the default heap spans a range of addresses. Some ranges are reserved, while others are committed and have pages of memory associated with them. In this case the addresses are contiguous,

檔案間的編譯依賴性

我們開啟自己的C++程式碼,對某個類的實現做了細小的改動。改動的不是介面,而是類的實現,只是細節部分。然後準備重建程式,此情況下編譯和連結應該只會花幾秒種。因為只是改動了一個類。於是Rebuild或make(或其它類似命令),然而發現所有檔案都在被重新編譯、重新連結。   問題的原因在於,將介面從實現中分離這方面,C++做得不是很出色。尤其是,C++的類定義中不僅包含介面規範,還有不少實現細節。例如:class Person {public:  Person(const string&

PC Lint 初學

1. PC-Lint在vs2005下配置使用2. PC-Lint 重要檔案說明  Msg.txt :解釋警示的內容。  選用的.lnt :包含標頭檔的路徑,-i選項。  env-選用的編輯環境.lnt :講述如何將PC-lint與對應的編輯環境結合起來。  co-xxx.lnt :選定的編譯器。  STD.LNT :記憶體模型等全域性東西。  LIB-xxx.LNT :庫類型的列表,包括標準C/C++庫,MFC庫,OWL庫等等。  AU-xxx.LNT

Vista UAC中把應用程式標註為“需要管理員權限”的四種方法

在Microsoft 的UACBlog裡對此有過敘述。總結如下:  首先,如果一個程式被識別為管理員程式時,Vista會在它的表徵圖上加上一個盾牌標記。因此很容易看出來。其次,如果UAC有效話,管理員程式啟動時會彈出執行許可或者管理員密碼輸入對話方塊。據此你可以知道你的標註是不是成功。  方法一:把檔案名稱裡包含 “Setup”, ”Install” , “Update”字樣,比如 TestSetup.exe 之類的。這個方法由UAC的本地安全性原則“檢測安裝程式”所控制。如果該原則設定為無效,

四種虛擬化技術優劣比較

虛擬化技術(Virtualization)和分區(Partition)技術是緊密結合在一起,從60年代Unix誕生起,虛擬化技術和分區技術就開始了發展,並且經曆了從“硬體分區”->“虛擬機器”->“准虛擬機器”->“虛擬作業系統”的發展曆程。最早的分區技術誕生自人們想提升大型主機利用率需求。比如在金融、科學等領域,大型Unix伺服器通常價值數千萬乃至上億元,但是實際使用中多個部門卻不能很好的共用其計算能力,常導致需要計算的部門無法獲得計算能力,而不需要大量計算能力的部門佔有了過

Layered Memory Management in Win32

 Very basic words:The foundation for the system provides the answer to how VMM is able to perform these seemingly miraculous functions. VMM is constructed upon a page-based memory management scheme that divides all of memory into equal chunks called

VS Tips (new ones)

0. Microsoft Visual Studio 2005 IDE EnhancementsDownload from:http://www.microsoft.com/downloads/details.aspx?FamilyID=CD7C6E48-E41B-48E3-881E-A0E6E97F9534&displaylang=en1. ToolBox cool usageToolbox可以做為一個copy & paste的工具來打造一些自己常用的”code

總頁數: 61357 1 .... 10269 10270 10271 10272 10273 .... 61357 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.