1.頭文件到底起什么作用?
編譯器只編譯源文件(cpp),頭文件是不參與編譯的,編譯器編譯源文件,首先展開它所include的文件所包含的代碼,然后從上到下的開始編譯
2.#pragma once的使用
.#pragma once放到頭文件的開頭,這樣某個include了此頭文件的cpp文件,在編譯器編譯它時,就只會展開一次這個頭文件的內(nèi)容,起到防止重復(fù)包含的作用。
這個怎么完成的呢,其實(shí)就是使用了宏定義,如下:








在這里有一點(diǎn)需要注意,所有標(biāo)識符的定義情況只是針對本次的cpp編譯來說的,也就是說每個cpp在編譯
的開始,這些標(biāo)識符都是沒有定義的
3.預(yù)編譯的使用
VC中可以設(shè)置文件的預(yù)編譯標(biāo)志,這樣其它c(diǎn)pp文件include了這個文件時,就不需要重新編譯里面的內(nèi)容,這樣可以節(jié)省編譯時間,對于include頻繁的頭文件,就可以在它的cpp文件的屬性中設(shè)置Create precompile header標(biāo)志(別忘了真正編譯的就時它的cpp文件),而在工程的屬性中設(shè)置Use precompile header標(biāo)志,這樣其它include了這個文件的cpp文件就會按 預(yù)編譯 的方式使用它了,另外StdAfx.cpp一般都應(yīng)該設(shè)置成Create precompile header標(biāo)志
好了,今天就收獲了這么多!既然開了這個Blog,以后我就會接著寫下去的