c++筆記_標頭檔案
前言
儘管可以在函式體內定義類,但是這樣的類畢竟受到類一些限制。所以,類一般都不定義在函式體內。當在函式體外部定義類時,在各個指定的原始檔中可能只有一處該類的定義。而且,如果要在不同的檔案使用同一個類,類的定義就必須保持一致。
一、標頭檔案
1.標頭檔案作用
1.為了確保各個檔案中類的定義一致,類通常被定義在標頭檔案中,而且類所在的標頭檔案名字應與類的名字一樣。比如,string類就在名為string的標頭檔案中定義。
2.標頭檔案提高程式碼的可閱讀性,比如我們需要找到這個庫的介面函式,我們只需要檢視標頭檔案即可,然後跳轉到對應函式定義實現檔案。
2.標頭檔案通常包含什麼
標頭檔案通常包含那些只能被定義一次的實體,如類,const和constexpr變數等。標頭檔案也經常用到其他標頭檔案的功能。
ps:標頭檔案一旦改變,相關的原始檔必須重新編譯以獲取更新過的宣告。
二、前處理器概述
1.什麼是前處理器
確保標頭檔案多次包含仍能安全工作的常用技術是前處理器(preprocessor)。
2.前處理器作用
前處理器是在編譯之前執行的一段程式,可以部分地改變我們所寫的程式。之前已經用到類一項預處理功能#include,當前處理器看到#include標記時就會用指定的標頭檔案的內容代替#include。
3.標頭檔案保護符
C++程式還會用到一項預處理功能是標頭檔案保護符,標頭檔案保護符依賴於預處理變數。
預處理變數有兩種狀態:已定義和未定義。
#define指令把一個名字設為預處理變數,另外兩個指令則分別檢查某個指定的預處理變數是否已經定義:#ifdef當且僅當變數已定義時為真,#ifndef當且僅當變數未定義時為真。一旦檢查結果為真,則執行後續操作直至遇到#endif指令為止。
#ifndef SALES_DATA_H //檢查預處理變數是否定義
#define SALES_DATA_H //把SALES_DATA_H定義為預處理變數
#include<string>
struct data{
/***/
};
#endif //如果檢查預處理變數為真,則執行結構體內部分
ps:預處理變數無視C++語言中關於作用域的規則。
整個程式中的預處理變數包括標頭檔案保護符必須唯一,通常的做法是基於標頭檔案中類的名字來構建保護符的名字,以確保其唯一性。為了避免與程式中的其他實體發生名字衝突,一般把預處理變數的名字全部大寫。
相關文章
- C/C++標頭檔案太難記?一個萬能標頭檔案全搞定!C++
- C++標準庫標頭檔案介紹C++
- C/C++標頭檔案一覽C++
- 關於C++的標頭檔案C++
- C++ 預編譯標頭檔案C++編譯
- C/C++標頭檔案說明C++
- C++標準庫名字和標頭檔案--表C++
- C/C++標頭檔案一覽(轉)C++
- C++ include標頭檔案引入規則C++
- macos新增c++萬能標頭檔案MacC++
- 附錄: 標準C++常用標頭檔案及描述C++
- C++ 標頭檔案的包含順序研究C++
- 8.13 標頭檔案剖析:標頭檔案路徑(下)
- C++ 字元處理函式(cctype標頭檔案)C++字元函式
- C 標頭檔案
- C++ 字串 cctype 標頭檔案標準庫處理函式C++字串函式
- C++自學34:原始檔與標頭檔案(pragma/ifndef/endif/ifdef)C++
- C++ 中神奇的標頭檔案,懶人專用C++
- Google C++ 程式設計風格指南:標頭檔案GoC++程式設計
- C++標頭檔案<algorithm>中常用函式簡介C++Go函式
- #include sys/xxx.h標頭檔案 UNIX標頭檔案
- locate標頭檔案和庫檔案
- C 標頭檔案 作用
- 祖傳標頭檔案
- 標頭檔案講解
- Linux學習筆記——例說makefile 標頭檔案查詢路徑Linux筆記
- C++學習筆記----讀寫檔案C++筆記
- C++ 利用 標頭檔案 , 產生一個random number generatorC++random
- 標頭檔案的作用分析
- fcntl.h標頭檔案
- linux 標頭檔案 作用Linux
- 什麼是 標頭檔案
- C++理論梳理3——深刻理解標頭檔案的作用C++
- 02@在類的標頭檔案中儘量少引入其他標頭檔案
- Effective Objective-C 2.0讀書筆記(一)-如何減少標頭檔案的引入Object筆記
- C++筆記(11) 智慧指標C++筆記指標
- Nt函式原型標頭檔案函式原型
- C語言 - 標頭檔案包含C語言