jasmine214--love

          只有當(dāng)你的內(nèi)心總是充滿快樂、美好的愿望和寧靜時,你才能擁有強壯的體魄和明朗、快樂或者寧靜的面容。
          posts - 731, comments - 60, trackbacks - 0, articles - 0

          C++ 頭文件 理解

          Posted on 2010-08-11 11:57 幻海藍夢 閱讀(243) 評論(0)  編輯  收藏 所屬分類: C++
           

          原文:http://blog.csdn.net/btooth/archive/2006/07/17/932291.aspx
          頭文件

           

          每個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)文件名稱,標識符,摘要。

          3)當(dāng)前版本號,作者/修改者,完成日期。

          4)版本歷史信息。

           

           

          /*

          * Copyright (c) 2001,老妖工作室

          * All rights reserved.

          *

          * 文件名稱:filename.h

          * 文件標識:見配置管理計劃書

          *     要:簡要描述本文件的內(nèi)容

          *

          * 當(dāng)前版本:1.1

          *     者:輸入作者(或修改者)名字

          * 完成日期:2001720

          *

          * 取代版本:1.0

          * 原作者  :輸入原作者(或修改者)名字

          * 完成日期:2001510

          */

           

          示例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

          【規(guī)則1-2-1】為了防止頭文件被重復(fù)引用,應(yīng)當(dāng)用ifndef/define/endif結(jié)構(gòu)產(chǎn)生預(yù)處理塊。

          【規(guī)則1-2-2】用 #include <filename.h> 格式來引用標準庫的頭文件(編譯器將從標準庫目錄開始搜索)。

          【規(guī)則1-2-3】用 #include filename.h 格式來引用非標準庫的頭文件(編譯器將從用戶的工作目錄開始搜索)。

          【建議1-2-1】頭文件中只存放“聲明”而不存放“定義”

          C++ 語法中,類的成員函數(shù)可以在聲明的同時被定義,并且自動成為內(nèi)聯(lián)函數(shù)。這雖然會帶來書寫上的方便,但卻造成了風(fēng)格不一致,弊大于利。建議將成員函數(shù)的定義與聲明分開,不論該函數(shù)體有多么小。

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

           

           

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

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

          #define   GRAPHICS_H

          #include <math.h>     // 引用標準庫的頭文件

          #include myheader.h   // 引用非標準庫的頭文件

          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 頭文件的作用

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

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

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

           

          主站蜘蛛池模板: 平南县| 枣强县| 满洲里市| 茂名市| 宜丰县| 大港区| 汝南县| 张家港市| 吐鲁番市| 潍坊市| 江北区| 金平| 奉贤区| 会理县| 得荣县| 惠州市| 钟祥市| 庐江县| 松溪县| 乌兰浩特市| 津市市| 红安县| 陈巴尔虎旗| 许昌市| 大名县| 广元市| 浦江县| 蒙自县| 南陵县| 墨脱县| 廉江市| 花莲县| 固镇县| 石首市| 宝应县| 遂溪县| 广东省| 桃园县| 平遥县| 大连市| 孟村|