標頭檔案與庫檔案與菜鳥 (轉)
標頭檔案與庫檔案與菜鳥
taowen
先說明這完全是我教導一位菜鳥的個人。貼在此處供菜鳥們閱讀,內容粗淺。
1.為什麼我只要包括
那是因為預設情況下,連結器會把標準庫連結到你的中。而那個庫檔案(副檔名或許是.lib,.a什麼的),其中包括了具體實現的程式碼編譯後的結果(二進位制的機器碼)。而
2.#include到底do了什麼?
僅僅把<>或""中的內容插入到檔案處。和你開啟標頭檔案然後ctrl-c,ctrl-v的效果是一樣的。
3.<>與""意義一樣嗎?
<>與""差不多。<>先在目錄(就是設定的include目錄)中查詢,而""則是先在工程所在的目錄中尋找。對於標準庫,第三方庫等,用<>。對於同一個工程中的其他檔案,用""。
4.標頭檔案頂部的#ifndef是幹什麼的?
透過#ifndef與#define來防止同一個檔案被反覆包含
5.多次include同一個檔案會不會有什麼問題
要看情況。對於原型,沒有什麼問題。對於函式的實現,類的定義等實際實現則不行。就是“只定義一次”原則,宣告可以有多次。
6.我在同一個工程中寫了好幾個cpp檔案和相應的標頭檔案,為什麼我僅僅包含了標頭檔案就能使用對應的.cpp檔案中的內容?
和#include
7.釋出自己寫的庫有哪些辦法?
把宣告與實現寫在同一個.hpp檔案中(如Boost的大部分)。
把宣告與實現放在不同的檔案中,提供.mak檔案給自己編譯,然後設定include和lib目錄(這個普遍用於類庫的釋出)
不釋出編譯好的.lib檔案是因為其格式並不統一。而mak檔案的使用又是菜鳥們的夢魘了
其實我也是一個菜鳥,這些基本的東西我也只是明白一點。望高手們能及時斧正其中的錯誤。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-993317/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SMTH Java FAQ (3) 檔案與磁碟操作(菜鳥必看) (轉)Java
- locate標頭檔案和庫檔案
- 8.13 標頭檔案剖析:標頭檔案路徑(下)
- 菜鳥調錯(四)——Spring與DWR整合,配置檔案報錯Spring
- fcntl.h與unistd.h標頭檔案
- C 標頭檔案
- bbed 與檔案頭恢復
- C++自學34:原始檔與標頭檔案(pragma/ifndef/endif/ifdef)C++
- DES演算法,標頭檔案 (轉)演算法
- ASM 檔案與本地檔案的轉換ASM
- EclipseCDT標準庫標頭檔案設定Eclipse
- C++標準庫標頭檔案介紹C++
- #include sys/xxx.h標頭檔案 UNIX標頭檔案
- C 標頭檔案 作用
- 祖傳標頭檔案
- 標頭檔案講解
- C語言標頭檔案組織與包含原則C語言
- python菜鳥教程學習13:檔案操作Python
- C++標準庫名字和標頭檔案--表C++
- C/C++標頭檔案一覽(轉)C++
- 標頭檔案的作用分析
- fcntl.h標頭檔案
- linux 標頭檔案 作用Linux
- 什麼是 標頭檔案
- 菜鳥學python之用python找指定檔案Python
- 菜鳥學SSH(五)——Struts2上傳檔案
- 02@在類的標頭檔案中儘量少引入其他標頭檔案
- C語言標頭檔案的使用(轉載)C語言
- 標頭檔案生成器-javah.exe(轉)Java
- gcc g++ 新增標頭檔案路徑和庫檔案路徑的方法GC
- C檔案與檔案的操作
- 關於控制檔案與資料檔案頭資訊的說明(zt)
- C/C++標頭檔案太難記?一個萬能標頭檔案全搞定!C++
- wav檔案的檔案頭
- extern 用法,全域性變數與標頭檔案(重複定義)變數
- Swift中橋接標頭檔案建立(Swift 與 OC 的混編)Swift橋接
- c++筆記_標頭檔案C++筆記
- Nt函式原型標頭檔案函式原型