編寫程序文件時遇到的特殊情況include .c文件

Q:爲什麼不常見include .c文件

A:對於#include  <filQename.h> ,編譯器從標準庫路徑開始搜索 filename.h
    對於#include  “filename.h” ,編譯器從用戶的工作路徑開始搜索 filename.h

   有人問: #include能不能include一個(多個.c文件)?
   偶的回答是:從理論上講可以,但是不推薦。
爲什麼經常見到include .h文件而不是include .c文件?或者說include是不是就是爲包含.h文件設定的語法?這個問題的答案偶不知道,沒有見有文檔記載、說明這個問題。不過從語法角度講,include的意思就是從當前位置包含另外一個文件,就象宏替換一樣把當前行用另外一個文件的整個內容替換掉。
從這點講,include .c文件是可行的,c編譯器完全能夠正常處理。但是爲什麼不常見include .c文件?從設計角度上講,源代碼區分爲.h和.c文件,是爲了接口與實現的分離,實際上兩者沒什麼本質的差別。.h文件提供接口,.c文件提供具體的實現,兩者可以一一對應,也可以不一一對應,沒有強制要求。一個.c文件做爲一個模塊的實現,有可能要跟其他的模塊打交道,這個時候就需要include其他模塊的接口(其他模塊的.h文件);而包含其他模塊的實現(.c文件)是沒有意義的、危險的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章