application.properties引用其他文件_金橙智能 | C语言头文件组织与包含原则,你知道吗?...
生活随笔
收集整理的這篇文章主要介紹了
application.properties引用其他文件_金橙智能 | C语言头文件组织与包含原则,你知道吗?...
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
點擊藍字
關注我們
同學們知道C語言中頭文件的組織與包含原則嗎?如果你還不知道,那么小橙來給你講解一下,希望同學可以認真學習。
頭文件的作用
程序執行在預處理階段,編譯器會把源文件包含的頭文件中的內容復制到#include處,在源文件編譯時,會把包含進來的頭文件內容一起編譯,生成目標文件.obj。當我們接觸到模塊化編程的時候,幾乎每個功能模塊都會寫成一個函數文件,然后頭文件為使用該模塊的用戶提供接口。接口是說該功能模塊對外給其他模塊訪問的具體功能入口和方法。當我們使用源文件實現功能模塊時,我們要使用頭文件對外的接口。而且用戶只需要包含對應的頭文件可以使用該頭文件中暴露的接口。使用頭文件包含的方法可以把程序中的各功能模塊串聯起來,從而清晰模塊化編程很有幫助。下面我來列舉幾個頭文件的具體作用:(1)源代碼保密,只需要調用功能。在我們工作中,會出現很多場合,我們的源代碼不可以對外公布,此時我們只需要向用戶提供頭文件和二進制庫即可。此時,使用該功能模塊的用戶只需要按照我們在頭文件中提供的接口聲明來調用庫功能,不用關心接口內部函數如何實現。(2)頭文件可以幫助我們檢查出類型錯誤。如果接口實現方式與頭文件聲明不一致,編譯器就會指出錯誤。這樣可以減輕我們的調試、改錯的負擔。在源文件中應僅包含必需的頭文件,盡量不要導致所包含的頭文件太龐大,否則會嚴重降低編譯速度。頭文件編寫原則
模塊化編程會編寫兩個文件,一個是源文件,另一個是對應的頭文件。我們在源文件中實現變量、函數的定義,并且制定鏈接的范圍。在頭文件中書寫對外可以調用的全局變量、函數聲明以及數據類型和宏定義。頭文件編寫要注意以下原則:(1)分類原則:類型定義、宏定義、函數聲明盡量都分離開,分別位于不同的頭文件中。并且內部函數聲明頭文件與外部函數聲明頭文件聲明相分離。(2)語義層次化原則:頭文件定義的時候需要有語義層次。對于不同層次的類型定義以及不同類型的層次的函數聲明都不要放在同一個頭文件中。(3)頭文件的命名盡量要與實現功能的源文件相同,比如delay.c和delay.h。盡量在源文件中包含同名的頭文件。(4)頭文件中不應包含本地數據,來降低模塊間的耦合度。就是說源文件不對外聲明只是自己使用的類型、宏定義和變量不應該出現在頭文件里,以防止外部調用。(5)頭文件中不允許定義變量和函數,只能定義宏、類型(typedef,struct,union,enum等)以及變量和函數的聲明。(6)如果是說明性頭文件,則不用有對應的源文件。該類頭文件中大多包含大量概念性宏定義或枚舉類型定義,不包含任何其他類型定義和變量或函數聲明。此類頭文件也不應包含其他文件。(7)使用#pragma ?once或header guard避免頭文件被重復引用。#pragma once雖然非標準但已經被現代編譯器廣泛支持,它告知預處理器“不要重復包含當前文件”。header guard是通過以下預處理命令防止被重復包含:頭文件包含原則
我們在實際編程中,可能會因為頭文件包含不正確從而引發編譯報告符號未定義或重復定義的警告。只需要在引用符號前確保它已經被聲明或定義,就可以消除未定義的編譯錯誤。(1)建議頭文件包含順序從特殊到一般,比如:(2)要減少頭文件的嵌套和交叉引用,頭文件包含真正需要顯示包含的頭文件。如果過多的頭文件嵌套和交叉引用會使程序和文件架構變得比較復雜和混亂,可能會引發未知錯誤。(3)頭文件應該是完整的,是指在任一源文件中包含任一個頭文件而不會產生編譯錯誤。(4)對于函數庫(標準庫和自定義的公共宏及接口)的頭文件,可以將他們加到一個通用頭文件中。并且需要控制該頭文件的體積,并要保證所有源文件首先包含該通用頭文件。說明:在該文中,除非特殊說明,“源文件”指.c文件,“頭文件”指.h文件,“引用”是指包含頭文件。聲明:金橙智能所推送文章,目的在于分享知識,若圖片及某些文字言論涉及版權問題,請聯系微信:NN18538260213我們會在24小時內刪除處理,謝謝
總結
以上是生活随笔為你收集整理的application.properties引用其他文件_金橙智能 | C语言头文件组织与包含原则,你知道吗?...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python逐个读取文件_在Python
- 下一篇: 如何提高lstm的预测精度_如何提高示波