第 1 章 文件結(jié)構(gòu)
每個 C++/C 程序通常分為兩個文件。一個文件用于保存程序的聲明( declaration ),稱為頭文件。另一個文件用于保存程序的實(shí)現(xiàn)( implementation ),稱為定義( definition )文件。
C++/C 程序的頭文件以“ .h ”為后綴, C 程序的定義文件以“ .c ”為后綴, C++ 程序的定義文件通常以“ .cpp ”為后綴(也有一些系統(tǒng)以“ .cc ”或“ .cxx ”為后綴)。
1.1 版權(quán)和版本的聲明
版權(quán)和版本的聲明位于頭文件和定義文件的開頭(參見示例 1-1 ),主要內(nèi)容有:
( 1 )版權(quán)信息。
( 2 )文件名稱,標(biāo)識符,摘要。
( 3 )當(dāng)前版本號,作者 / 修改者,完成日期。
( 4 )版本歷史信息。
/*
* Copyright (c) 2001,上海貝爾有限公司網(wǎng)絡(luò)應(yīng)用事業(yè)部
* All rights reserved.
*
* 文件名稱: filename.h
* 文件標(biāo)識: 見配置管理計劃書
* 摘 要: 簡要描述本文件的內(nèi)容
*
* 當(dāng)前版本: 1.1
* 作 者: 輸入作者(或修改者)名字
* 完成日期: 2001年7月20日
*
* 取代版本 : 1.0
* 原作者 : 輸入原作者(或修改者)名字
* 完成日期: 2001年5月10日
*/
示例 1-1 版權(quán)和版本的聲明
1.2 頭文件的結(jié)構(gòu)
頭文件由三部分內(nèi)容組成:
( 1 )頭文件開頭處的版權(quán)和版本聲明(參見示例 1-1 )。
( 2 )預(yù)處理塊。
( 3 )函數(shù)和類結(jié)構(gòu)聲明等。
假設(shè)頭文件名稱為 graphics.h,頭文件的結(jié)構(gòu)參 見示例 1-2 。
l 【規(guī)則 1-2-1 】 為了防止頭文件被重復(fù)引用,應(yīng)當(dāng)用 ifndef/define/endif 結(jié)構(gòu)產(chǎn)生預(yù)處理塊。
l 【規(guī)則 1-2-2 】 用 #include 〈 filename.h〉 格式來引用標(biāo)準(zhǔn)庫的頭文件(編譯器將從標(biāo)準(zhǔn)庫目錄開始搜索)。
l 【規(guī)則 1-2-3 】 用 #include “filename.h” 格式來引用非標(biāo)準(zhǔn)庫的頭文件(編譯器將從用戶的工作目錄開始搜索)。
2 【建議 1-2-1 】 頭文件中只存放“聲明”而不存放“定義”
在 C++ 語法中,類的成員函數(shù)可以在聲明的同時被定義,并且自動成為內(nèi)聯(lián)函數(shù)。這雖然會帶來書寫上的方便,但卻造成了風(fēng)格不一致,弊大于利。建議將成員函數(shù)的定義與聲明分開,不論該函數(shù)體有多么小。
每個 C++/C 程序通常分為兩個文件。一個文件用于保存程序的聲明( declaration ),稱為頭文件。另一個文件用于保存程序的實(shí)現(xiàn)( implementation ),稱為定義( definition )文件。
C++/C 程序的頭文件以“ .h ”為后綴, C 程序的定義文件以“ .c ”為后綴, C++ 程序的定義文件通常以“ .cpp ”為后綴(也有一些系統(tǒng)以“ .cc ”或“ .cxx ”為后綴)。
1.1 版權(quán)和版本的聲明
版權(quán)和版本的聲明位于頭文件和定義文件的開頭(參見示例 1-1 ),主要內(nèi)容有:
( 1 )版權(quán)信息。
( 2 )文件名稱,標(biāo)識符,摘要。
( 3 )當(dāng)前版本號,作者 / 修改者,完成日期。
( 4 )版本歷史信息。
/*
* Copyright (c) 2001,上海貝爾有限公司網(wǎng)絡(luò)應(yīng)用事業(yè)部
* All rights reserved.
*
* 文件名稱: filename.h
* 文件標(biāo)識: 見配置管理計劃書
* 摘 要: 簡要描述本文件的內(nèi)容
*
* 當(dāng)前版本: 1.1
* 作 者: 輸入作者(或修改者)名字
* 完成日期: 2001年7月20日
*
* 取代版本 : 1.0
* 原作者 : 輸入原作者(或修改者)名字
* 完成日期: 2001年5月10日
*/
示例 1-1 版權(quán)和版本的聲明
1.2 頭文件的結(jié)構(gòu)
頭文件由三部分內(nèi)容組成:
( 1 )頭文件開頭處的版權(quán)和版本聲明(參見示例 1-1 )。
( 2 )預(yù)處理塊。
( 3 )函數(shù)和類結(jié)構(gòu)聲明等。
假設(shè)頭文件名稱為 graphics.h,頭文件的結(jié)構(gòu)參 見示例 1-2 。
l 【規(guī)則 1-2-1 】 為了防止頭文件被重復(fù)引用,應(yīng)當(dāng)用 ifndef/define/endif 結(jié)構(gòu)產(chǎn)生預(yù)處理塊。
l 【規(guī)則 1-2-2 】 用 #include 〈 filename.h〉 格式來引用標(biāo)準(zhǔn)庫的頭文件(編譯器將從標(biāo)準(zhǔn)庫目錄開始搜索)。
l 【規(guī)則 1-2-3 】 用 #include “filename.h” 格式來引用非標(biāo)準(zhǔn)庫的頭文件(編譯器將從用戶的工作目錄開始搜索)。
2 【建議 1-2-1 】 頭文件中只存放“聲明”而不存放“定義”
在 C++ 語法中,類的成員函數(shù)可以在聲明的同時被定義,并且自動成為內(nèi)聯(lián)函數(shù)。這雖然會帶來書寫上的方便,但卻造成了風(fēng)格不一致,弊大于利。建議將成員函數(shù)的定義與聲明分開,不論該函數(shù)體有多么小。

