標頭檔案 庫檔案 命名空間三者之間是什麼關係?

時間 2021-05-31 10:30:16

1樓:張月

#include中的book.h就是標頭檔案,#include中的iostream就是庫,標頭檔案和庫就像倉庫,裡面有你要用到的東西,你得用include把他倆包含進來。

using namespace std中的std就是命名空間,命名空間是名字定義的集合,乙個名字在不同的命名空間裡可能有不一樣的定義,比如說乙個函式,在不同的命名空間可能功能是不一樣的。

2樓:Xi Yang

C語言沒有命名空間。

C語言標頭檔案(.h)和實現檔案(.c)沒有本質區別。

把宣告放在.h檔案、實現放在.c檔案只是工程慣例。

include僅僅是相當於把那個檔案「拷貝」到#include的那個位置。實際上,對於小型專案,蛋疼的人會不寫標頭檔案,只寫實現檔案,然後把實現檔案include到乙個檔案裡。

(靜態)庫檔案就是一系列編譯好的物件檔案,打包放在一起。

C語言,包括其之後的C++,之所以有這麼繁雜的概念,一部分是因為出現的比較早,沒有很多新語言的包、模組等內建功能;另一部分是因為它們需要貼近計算機底層,而底層是沒有包這種東西的。

c裡面庫標頭檔案定義的常數 如 limit h裡某個巨集值,無論什麼機器都是同乙個值嗎?

Shiwei Wang 首先問題描述有點問題 要麼是 常數 要麼是 巨集 1,如果是常數,那當然各個平台都一樣 2,如果是巨集,不同平台可能不同。記得有個巨集,char bits什麼的,對現在一般CPU來說值是8,如果碰到某種特殊用途處理器,值就可能不是8了 薛非 c裡面庫標頭檔案定義的常數如 li...

為什麼要有標頭檔案?

黃達 為什麼要有標頭檔案?黃達 為什麼C C 要分為標頭檔案和原始檔?能不能用.c自動生成標頭檔案?如果你想寫在這個.h裡的全部資訊都在這個.c裡,那就能,否則就不能 廢話 所以多數情況下是不能。 劉文麟 題主的意思就是為什麼不能在正式編譯開始之間增加乙個過程 掃瞄所有.c檔案,然後把其中的函式定義...

c 能否把所有要用的標頭檔案在某乙個標頭檔案中全inlcude了,然後其他檔案只用include這個

qugx0528 每個cpp都是乙個編譯單元,編譯時生成多個obj檔案,在link的時候,也會極大的拖慢速度。有這麼一種情況,我有乙個很大的UI介面,其對應的實現 操作類也很龐大,我想把他們分解到多個cpp實現中。這樣就產生了這麼乙個問題 代表ui的標頭檔案會在每個cpp中被include一次,這樣...