c語言頭文件包含嵌套問題和包含原則

a.h
#include<stdio.h>
#ifndef _A_H
#define _A_H

只是解決頭文件重複包含的問題的,但是頭文件嵌套包含,就不代表不會出問題,就會關係錯綜複雜,出現標識符未定義,重定義等錯誤。(具體的錯誤和舉例,自己百度搜索吧)

所以C語言頭文件包含原則如下:(頭文件嵌套的話,會造成包含很多不必要的頭文件,會造成編譯速度變慢)

  • 文件中實現變量、函數的定義
  • 頭文件中書寫外部需要使用的全局變量、函數聲明及數據類型和宏的定義(即你想暴露給別的文件什麼內容)
  • 頭文件不要去包含別的頭文件(因爲很容易造成嵌套或者遞歸包含的情況),除非必須不可。頭文件要保證功能單一性,僅僅暴露自己對應的源文件的想暴露的內容罷了,如果一個源文件根本就不需要向外暴露什麼,那麼就不需要創建一個它的頭文件。
  • 由源文件去包含自己需要用到的頭文件,用到誰就包含一下誰
  • 不要一個頭文件包含所有頭文件,然後所有源文件包含這個頭文件即可,這種一鍋端方式是錯的,會造成嵌套包含(可能會報錯),或者大量包含了無關頭文件,造成編譯速度變慢。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章