我會很感激,如果有人能真正解釋當我按下按鈕BUILD正是我的編譯器做什麼,以及編譯器開始編譯我所有的.h和.cpp文件這個過程到底如何回事(我有什麼內部的目標文件?),爲什麼我問這樣的問題?我想知道這是什麼意思,從邁爾斯的書「最小化文件之間的編譯依賴」大約50個具體辦法......(希望你瞭解這本書),在那裏,他解釋這是什麼意思抽象基類和處理類,我的講師解釋我,我不需要過多包含.h文件和多數民衆贊成,約編譯過程中的任何鏈接將被提前瞭解編譯器的最佳方式讚賞爲好,感謝您的幫助過程
Q
過程
2
A
回答
5
在做一個完整的編譯,編譯器將依次讀取每個.cpp文件。對於一個給定的.cpp文件,它將會讀取#include
指令引用的每個文件,遞歸地編譯代碼。編譯下一個源文件時,它將讀取該源文件中以#include
引用的文件。
當您進行任何更改並執行構建時,如果您的.cpp文件中#include
指令引用的任何文件發生更改,那麼.cpp文件將被重新編譯,就好像.cpp文件本身已更改。
不必要的#include
指令因此有兩個成本:第一,編譯時編譯器必須讀取和處理更多的文件,第二,它增加了.cpp文件需要重新編譯的可能性,即使它實際上沒有改變。
0
作品首先要了解彙編程序的工作原理。有一個decent explanation here。
1
見
http://computer.howstuffworks.com/c2.htm爲 的引進和
http://www.tenouk.com/ModuleW.html 深入descirption
此外,一些理論背景可以在 http://en.wikipedia.org/wiki/Compiler
相關問題
- 1. TSQLT過程從另一個過程調用假表過程
- 2. 過程
- 3. 存儲過程中的Viemodel過程
- 4. 針對Facebook iOS SDK過程的過程
- 5. 遞歸過程到尾遞歸過程
- 6. Oracle:Java存儲過程和過程
- 7. PM2過程中始終啓動過程
- 8. 異步過程中的同步過程
- 9. 通過存儲過程
- 10. 過程 - 等到it's超過
- 11. 存儲過程過濾
- 12. 通過存儲過程
- 13. SICP遞歸過程VS迭代過程:使用遞歸過程來生成一個迭代過程
- 14. 過程WaitForExit()
- 15. 存儲過程
- 16. 存儲過程
- 17. 使用過程
- 18. 替代過程
- 19. 存儲過程
- 20. 等待過程
- 21. Java ETL過程
- 22. 通過編程
- 23. 存儲過程
- 24. 子過程與*
- 25. 輸出過程
- 26. 長過程php
- 27. 活動過程
- 28. 獲取過程
- 29. 驗證過程
- 30. 窗口過程
發現首先讀了幾維基百科中的文章幾乎可以回答你所有的問題。 – 2010-09-21 12:46:40