C++Primer::头文件设计基本原则 与 预处理器介绍
生活随笔
收集整理的這篇文章主要介紹了
C++Primer::头文件设计基本原则 与 预处理器介绍
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.學會編寫自己的頭文件
有多個文件組成的程序需要一種方法連接名字的使用和聲明,在C++中就是通過頭文件實現的。C++程序使用頭文件包含的不僅僅是類定義。 為了允許把程序寫成獨立的邏輯塊,C++支持所謂的分別編譯。正陽程序可以由多個文件組成。 頭文件為相關聲明提供了一個集中存放的位置。頭文件一般包含類的定義、extern變量的聲明和函數的聲明。使用或定義這些實體的文件要包含適當的頭文件。頭文件的正確使用可以帶來兩個好處:保證所有文件使用給定實體的同一聲明;當聲明需要修改時,只有頭文件需要更新。2. 預處理器的簡單介紹
要使用頭文件,必須在源文件中#include該頭文件。很有必要了解#include指示是怎樣工作的。#include設施是C++預處理器的一部分。預處理器處理程序的源代碼,在編譯器之前運行。C++繼承了C的非常精細的預處理器。 #include指示只接受一個參數:頭文件名。預處理器用指定的頭文件的內容代替每個#include。我們自己的頭文件存儲在文件中,系統的頭文件可能特定與編譯器的更高效的格式保存。無論頭文件以什么樣的格式保存,一般都含有支持分別編譯所需的類定義及變量和函數的聲明。 采用多文件設計程序,我們很難避免多重包含頭文件的問題,C++給出了一個良好的解決方案。3. 如何避免頭文件的多重包含
在編寫頭文件之前,我們需要引入一些額外的預處理器設施。預處理器允許我們自定義變量。(預處理器變量的名字在程序中必須是為唯一的。任何與預處理器變量相匹配的名字的使用都關聯到該處理器變量)。 為了避免名字沖突,預處理器變量通常全大寫字母表示。 預處理器有兩種狀態:已定義或未定義。定義預處理器變量和檢測其狀態所用的預處理器指示不同。#define指示接受一個名字并定義改名字為預處理器變量。#ifndef指示檢測指定的預處理器變量是否未定義。如果預處理器變量未定義,那么 跟在其后的的所有指示都被處理,直到出現#endif。那么,我們就可以使用這些設施來預防多次包含同一頭文件: #ifndef SALESITEM_H #define SALESITEM_H // defination of Sales_item class and related functions goes here #endif4.區分標準頭文件和自己定義的頭文件
#include 指示接受兩種形式: #include<standard_header> #include "my_file.h"j尖括號里面的頭文件是標準頭文件。編譯器將會在預定義的位置集查找該頭文件。引號內的頭文件,并不是系統的頭文件,而是用戶自己編寫的頭文件。非系統頭文件的查找通常開始于源文件所在的路徑。總結
以上是生活随笔為你收集整理的C++Primer::头文件设计基本原则 与 预处理器介绍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++primer: 引用与 cons
- 下一篇: 飞秋_常用正则表达式集锦