c 筆記 標頭檔案

2021-10-11 09:21:20 字數 1139 閱讀 1993

二、預處理器概述

儘管可以在函式體內定義類,但是這樣的類畢竟受到類一些限制。所以,類一般都不定義在函式體內。當在函式體外部定義類時,在各個指定的原始檔中可能只有一處該類的定義。而且,如果要在不同的檔案使用同乙個類,類的定義就必須保持一致。

1.為了確保各個檔案中類的定義一致,類通常被定義在標頭檔案中,而且類所在的標頭檔案名字應與類的名字一樣。比如,string類就在名為string的標頭檔案中定義。

2.標頭檔案提高**的可閱讀性,比如我們需要找到這個庫的介面函式,我們只需要檢視標頭檔案即可,然後跳轉到對應函式定義實現檔案。

標頭檔案通常包含那些只能被定義一次的實體,如類,const和constexpr變數等。標頭檔案也經常用到其他標頭檔案的功能。

確保標頭檔案多次包含仍能安全工作的常用技術是預處理器(preprocessor)

預處理器是在編譯之前執行的一段程式,可以部分地改變我們所寫的程式。之前已經用到類一項預處理功能#include,當預處理器看到#include標記時就會用指定的標頭檔案的內容代替#include。

c++程式還會用到一項預處理功能是標頭檔案保護符,標頭檔案保護符依賴於預處理變數。

預處理變數有兩種狀態:已定義和未定義。

#define指令把乙個名字設為預處理變數,另外兩個指令則分別檢查某個指定的預處理變數是否已經定義:#ifdef當且僅當變數已定義時為真,#ifndef當且僅當變數未定義時為真。一旦檢查結果為真,則執行後續操作直至遇到#endif指令為止。

#ifndef sales_data_h		

//檢查預處理變數是否定義

#define sales_data_h

//把sales_data_h定義為預處理變數

#include

struct data

;#endif

//如果檢查預處理變數為真,則執行結構體內部分

ps:預處理變數無視c++語言中關於作用域的規則。

整個程式中的預處理變數包括標頭檔案保護符必須唯一,通常的做法是基於標頭檔案中類的名字來構建保護符的名字,以確保其唯一性。為了避免與程式中的其他實體發生名字衝突,一般把預處理變數的名字全部大寫。

C 筆記(十二)標頭檔案

標頭檔案中常包含的內容 例子如下所示 include using namespace std ifndef learnc12 define learnc12 struct user void userinfo user u endif learnc12 標頭檔案中函式的定義 include incl...

學習筆記 C 標頭檔案

c c程式的標頭檔案以.h為字尾。使用時需要在.cpp檔案中意 include的方式引入。標頭檔案作為一種包含功能函式 資料介面宣告的載體檔案,主要用於儲存程式的宣告,而定義檔案用於儲存程式的實現。函式原型 使用 define或const定義的符號常量 結構宣告 將結構宣告放在標頭檔案中是可以的,因...

C 標頭檔案與C標頭檔案

include 設定插入點 include 字元處理 include 定義錯誤碼 include 浮點數處理 include 檔案輸入 輸出 include 引數化輸入 輸出 include 資料流輸入 輸出 include 定義各種資料型別最值常量 include 定義本地化函式 include ...