麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > C++ > 正文

高質(zhì)量C++/C編程指南(一)

2024-09-07 17:00:54
字體:
供稿:網(wǎng)友
第 1 章 文件結(jié)構(gòu)

每個 C++/C 程序通常分為兩個文件。一個文件用于保存程序的聲明( declaration ),稱為頭文件。另一個文件用于保存程序的實現(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ù)體有多么小。

2 【建議 1-2-2 不提倡使用全局變量,盡量不要在頭文件中出現(xiàn)象 extern int value 這類聲明。

// 版權(quán)和版本聲明見示例 1-1 ,此處省略。

#ifndef GRAPHICS_H // 防止 graphics.h 被重復(fù)引用

#define GRAPHICS_H

#include // 引用標(biāo)準(zhǔn)庫的頭文件

#include “myheader.h” // 引用非標(biāo)準(zhǔn)庫的頭文件

void Function1(…); // 全局函數(shù)聲明

class Box // 類結(jié)構(gòu)聲明

{

};

#endif

示例 1-2 C++/C頭文件的結(jié)構(gòu)

1.3 定義文件的結(jié)構(gòu)

定義文件有三部分內(nèi)容:

(1) 定義文件開頭處的版權(quán)和版本聲明(參見示例 1-1 )。

(2) 對一些頭文件的引用。

(3) 程序的實現(xiàn)體(包括數(shù)據(jù)和代碼)。

假設(shè)定義文件的名稱為 graphics.cpp, 定義 文件的結(jié)構(gòu)參 見示例 1-3 。

// 版權(quán)和版本聲明見示例 1-1 ,此處省略。

#include “graphics.h” // 引用頭文件

// 全局函數(shù)的實現(xiàn)體

void Function1(…)

{

}

// 類成員函數(shù)的實現(xiàn)體

void Box::Draw(…)

{

}

示例 1-3 C++/C定義文件的結(jié)構(gòu)

1.4 頭文件的作用

早期的編程語言如 Basic 、 Fortran 沒有頭文件的概念, C++/C 語言的初學(xué)者雖然會用使用頭文件,但常常不明其理。這里對頭文件的作用略作解釋:

( 1 )通過頭文件來調(diào)用庫功能。在很多場合,源代碼不便(或不準(zhǔn))向用戶公布,只要向用戶提供頭文件和二進(jìn)制的庫即可。用戶只需要按照頭文件中的接口聲明來調(diào)用庫功能,而不必關(guān)心接口怎么實現(xiàn)的。編譯器會從庫中提取相應(yīng)的代碼。

( 2 )頭文件能加強(qiáng)類型安全檢查。如果某個接口被實現(xiàn)或被使用時,其方式與頭文件中的聲明不一致,編譯器就會指出錯誤,這一簡單的規(guī)則能大大減輕程序員調(diào)試、改錯的負(fù)擔(dān)。

1.5 目錄結(jié)構(gòu)

如果一個軟件的頭文件數(shù)目比較多(如超過十個),通常應(yīng)將頭文件和定義文件分別保存于不同的目錄,以便于維護(hù)。

例如可將頭文件保存于 include 目錄,將定義文件保存于 source 目錄(可以是多級目錄)。

如果某些頭文件是私有的,它不會被用戶的程序直接引用,則沒有必要公開其“聲明”。為了加強(qiáng)信息隱藏,這些私有的頭文件可以和定義文件存放于同一個目錄。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 91免费高清视频 | 国产精品久久久久久久久久久久久久久久 | 日韩视频www| 石原莉奈日韩一区二区三区 | 毛片在线视频在线播放 | 亚洲第一页中文字幕 | 久久久久免费精品 | 国产麻豆交换夫妇 | 最新在线中文字幕 | 黄色免费电影网址 | 黄色高清视频网站 | 久草在线观看福利视频 | 狠狠干夜夜操 | 亚洲人片在线观看 | 一级免费特黄视频 | 国产手机av在线 | 国产精品剧情一区二区三区 | 小雪奶水翁胀公吸小说最新章节 | 日韩毛片免费观看 | www.777含羞草 | 日本成年免费网站 | 欧美性成人 | 欧美a级大胆视频 | 日韩精品久久久久久久九岛 | 精品中文字幕在线播放 | 精品一区二区免费 | 羞羞网站视频 | 日产精品久久久一区二区开放时间 | 国产精品av久久久久久久久久 | av播放在线| 国产精品剧情一区二区三区 | 羞羞视频在线免费 | 在线播放免费人成毛片乱码 | 中国3xxxx| 在线成人一区 | 在线成人www免费观看视频 | 黄视频网站免费观看 | 婷婷久久青草热一区二区 | 成年人性视频 | 久久久久免费电影 | 激情小说激情图片激情电影 |