寫過C語言的朋友都熟悉#include,在列印“hello world”這樣一條語句也用上這條指令。但是,說熟悉它,隻是表面熟悉,更多感覺是既熟悉又抽象陌生,結果也就隻是不知道為什麼的背誦了。抽象、熟悉而陌生,使得#include成為“最熟悉的陌生人”。
試着從另外的角度來深入了解它。
1:首先,它是一條預編譯指令
也就是在編譯之前就做了的,那麼做了什麼呢?動态包含。
2:其次,來了解何為“動态包含”?
一開始:
效果:
現在,先建立一個頭檔案:
把語句拷貝到ok.h中:
主檔案中:
效果一樣:
可見:#include 檔案名 ,這條語句的功能是:在調用的時候複制該.h中的内容、粘貼到調用的地方的效果。這就是動态包含。
3:再次,為什麼要這麼做?也就是“動态包含做成#include”的意義:
這樣的好處可以簡化後續的維護:以後如果要修改了,隻要到這個.h中來修改,那麼N多地方多跟着是最新的了。
4:最後,繼續探究!
其實.h也不一定是必須的,你可以是任意的字尾。這樣就更加的體會出,#include 檔案名,這個預編譯指令的重點是#include,是動态包含,而不是字尾是什麼檔案。
如:我把ok.h改為ok.ncc,同時為了差別,增加了幾個字:
在主檔案中修改包含的檔案:
結果同樣正确(列印了最新的内容)
更多C語言詳解,敬請關注下集分解...
本文轉自 ningcaichen66 51CTO部落格,原文連結:http://blog.51cto.com/ningcaichen66/1967701,如需轉載請自行聯系原作者