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++
- macos新增c++萬能標頭檔案MacC++
- C++ include標頭檔案引入規則C++
- 8.13 標頭檔案剖析:標頭檔案路徑(下)
- C++ 字元處理函式(cctype標頭檔案)C++字元函式
- C++ 字串 cctype 標頭檔案標準庫處理函式C++字串函式
- C++標頭檔案<algorithm>中常用函式簡介C++Go函式
- C++學習筆記----讀寫檔案C++筆記
- locate標頭檔案和庫檔案
- C++自學34:原始檔與標頭檔案(pragma/ifndef/endif/ifdef)C++
- 標頭檔案講解
- 祖傳標頭檔案
- C++理論梳理3——深刻理解標頭檔案的作用C++
- 標頭檔案的作用分析
- 什麼是 標頭檔案
- 02@在類的標頭檔案中儘量少引入其他標頭檔案
- Effective Objective-C 2.0讀書筆記(一)-如何減少標頭檔案的引入Object筆記
- Windows10 VS2017 C++ ini解析(使用simpleini標頭檔案)WindowsC++
- C++筆記(11) 智慧指標C++筆記指標
- linux下使用windows標頭檔案LinuxWindows
- C語言 - 標頭檔案包含C語言
- C++ 數學函式、標頭檔案及布林型別詳解C++函式型別
- 這。。這。。C++標頭檔案居然可以這麼打!!!! 長見識了!!!C++
- 巨集_變數_函式_指標_標頭檔案變數函式指標
- 8.10 標頭檔案剖析:變數宣告變數
- 8.11 標頭檔案剖析:前向引用
- 8.14 Linux核心中的標頭檔案Linux
- 8.8 標頭檔案剖析:基本概念
- 看標頭檔案猜演算法演算法
- pycharm設定python標頭檔案模版PyCharmPython
- vscode 自定義c++標頭檔案,編譯過程中遇到的問題VSCodeC++編譯
- openGauss libpq使用依賴的標頭檔案
- algorithm標頭檔案下的常用函式Go函式
- string.h標頭檔案(字串函式)字串函式
- 字幕檔案srt筆記筆記