亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C > 正文

.h和.cpp文件的區別是什么

2020-02-24 14:37:52
字體:
來源:轉載
供稿:網友

  因剛接觸VC++的開發,需要對C++一些原理性的東西進行掌握。特別是對源文件和頭文件的概念,需要深入對它了解:

  關于頭文件和源文件的分別

  首先,我們可以將所有東西都放在一個.cpp文件內.

  然后編譯器就將這個.cpp編譯成.obj,obj是什么東西?

  就是編譯單元了.一個程序,可以由一個編譯單元組成,也可以有多個編譯單元組成. 如果你不想讓你的源代碼變得很難閱讀的話,

  就請使用多個編譯單元吧.(一個函數不能放到兩個編譯單元里面,但兩個以上

  就可以分別放在一個單元,也就是cpp里面)

  那么就是一個.cpp對應一個.obj,然后將所有的obj鏈接起來(通過一個叫鏈接器的程序),組成一個.exe,也就是程序了.

  如果一個.cpp要用到另一個.cpp定義的函數怎么辦? 只需在這個.cpp種寫上他的函數聲明就可以了.其余工作由鏈接器幫你完成,你可以隨便調用該函數.

  鏈接器將所有的obj連接起來,但是如果碰巧有相同的函數或外部變量怎么辦?他如何識別?

  一般來說是不能允許在同一個程序中,出現兩個一樣的函數名或外部變量名.

  但是只得慶幸的是,c++可以通過一種叫做鏈接屬性的關鍵字來限定,你這個函數是屬于整個程序

  公用的,還是只是在一個編譯單元obj里面使用的.

  這些關鍵字就是extern 和 static; extern是外部鏈接的意思,也就是除了這個單元,外部的單元

  也是能夠訪問這個函數的.static 是內部鏈接,自屬于自己單元.

  說了這么久,還沒有說.h的作用呢?

  其實沒有.h也能很好的工作,但是當你發現一個外部鏈接的函數或外部變量,需要許多份聲明,因為c++這種語言,在使用函數和變量的時候,必須將他聲明,為何要聲明?聲明之后才知道他的規格,才能更好的發現不和規格的部分.你別妄想一個編譯單元,會自動從另一個編譯單元那里得到什么信息,知道你是如何定義這個函數的.

  所以說,只要使用到該函數的單元,就必須寫一份聲明在那個.cpp里面,這樣是不是很麻煩,而且,如果要修改,就必須一個一個修改.這真讓人受不了.

  .h就是為了解決這個問題而誕生,他包含了這些公共的東西.然后所有需要使用該函數的.cpp,只需要用#include包含進去便可.以后需要修改,也只是修改一份內容.

  請注意不要濫用.h,.h里面不要寫代碼,.h不是.cpp的倉庫,什么都塞到里面.

  如果在里面寫代碼,當其他.cpp包含他的時候,就會出現重復定義的情況,比如將函數func(){printf};放到頭文件a.h,里面還有一些a.cpp需要的聲明等;

  然后你發現b.cpp需要用到a.cpp里面的一個函數,就很高興的將a.h包含進來.

  注意,#include并不是什么申請指令,他就是將指定的文件的內容,原封不動的拷貝進來.

  這時候實際上a.cpp和b.cpp都有一個func()函數的定義.

  如果這個函數是內部鏈接static的話,還好,浪費了一倍空間;

  如果是extern,外部鏈接(這個是默認情況),那么根據在同一個程序內不可出現

  同名函數的要求,連接器會毫不留情給你一個連接錯誤!

  以上就是.h和.cpp文件的區別是什么的介紹,希望小編整理的相關知識和資料都對你們有所幫助,更多內容請繼續關注武林技術頻道網站!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
成人激情在线播放| 96精品视频在线| 久久久久久久色| 亚洲风情亚aⅴ在线发布| 91精品国产一区| 亚洲成avwww人| 欧美日韩性视频在线| 亚洲精品欧美一区二区三区| 欧美高清视频在线观看| 日韩欧美在线视频观看| 91干在线观看| 成人性生交大片免费看视频直播| 中文字幕一区二区三区电影| 亚洲国产97在线精品一区| 日韩视频免费大全中文字幕| 国产成人午夜视频网址| 北条麻妃一区二区三区中文字幕| 一区二区欧美久久| 久久免费视频网| 91理论片午午论夜理片久久| 欧美老女人bb| 亚洲国产天堂久久综合网| 欧美高清一级大片| 国产精品综合不卡av| 成人免费淫片视频软件| 国产视频精品xxxx| 亚洲影院色在线观看免费| 欧美黑人极品猛少妇色xxxxx| 国产精品专区一| 国产主播喷水一区二区| 欧美成在线视频| 欧美日韩亚洲一区二区| 国模精品系列视频| 国产精品三级久久久久久电影| 国产精品老女人视频| 久热在线中文字幕色999舞| 欧美亚洲国产另类| 午夜精品国产精品大乳美女| 日本亚洲欧美成人| 亚洲最新视频在线| 精品免费在线视频| 亚洲成年人影院在线| 欧美成人激情视频免费观看| 国产脚交av在线一区二区| 久久国产精品视频| 日韩有码片在线观看| 国产a∨精品一区二区三区不卡| 91av视频在线播放| 91精品久久久久久综合乱菊| 中文字幕日韩在线视频| 欧美大学生性色视频| 成人有码在线视频| 欧美日韩国产第一页| 亚洲人在线观看| 日韩少妇与小伙激情| 一个人看的www欧美| 久久久久久久国产| 国产97色在线| 日韩久久免费电影| 成人欧美一区二区三区在线湿哒哒| 久久久噜噜噜久久中文字免| 中文字幕精品视频| 九九热精品视频在线播放| 国产精品久久久久久久7电影| 欧美成人精品一区二区| 欧美午夜精品久久久久久人妖| 97精品视频在线播放| 久久精视频免费在线久久完整在线看| 北条麻妃一区二区在线观看| 国产一区二区三区高清在线观看| 91欧美视频网站| 欧洲精品在线视频| 亚洲欧美一区二区精品久久久| 精品视频久久久久久| 欧美性在线视频| 国产日韩在线精品av| 亚洲精品中文字幕有码专区| 国产美女精彩久久| 亚洲欧美日韩精品久久奇米色影视| 久久久久久久久久久人体| 国产在线精品播放| 日韩中文字幕不卡视频| 精品欧美一区二区三区| 一区二区亚洲欧洲国产日韩| 欧美极品少妇与黑人| 成人免费视频在线观看超级碰| 国产亚洲一级高清| 日韩成人性视频| 日本欧美国产在线| 成人h猎奇视频网站| 欧美精品免费播放| 亚洲伊人成综合成人网| 成人美女免费网站视频| 日韩在线观看av| 69精品小视频| 久久精品福利视频| 欧美激情亚洲精品| 日韩av在线免费| 精品国产网站地址| 亚洲高清免费观看高清完整版| 日韩欧美亚洲范冰冰与中字| 国产一区二区三区高清在线观看| 亚洲欧美日韩第一区| 亚洲一区二区三区毛片| 日韩精品视频中文在线观看| 久久久久久久久久久91| 日本高清视频精品| 中文字幕欧美在线| 欧美日韩日本国产| 国产精品精品视频一区二区三区| 日韩在线免费观看视频| 久久视频在线直播| 日韩大片免费观看视频播放| 色午夜这里只有精品| 热草久综合在线| 亚洲伊人久久综合| 最近中文字幕mv在线一区二区三区四区| 亚洲成人久久一区| 欧美国产精品va在线观看| 日韩欧美视频一区二区三区| 久久深夜福利免费观看| 91在线免费视频| 日韩视频永久免费观看| 色久欧美在线视频观看| 欧美福利视频网站| 亚洲精品久久7777777| 91豆花精品一区| 亚洲精品成a人在线观看| 国产精品h片在线播放| 欧美激情欧美激情| 欧美精品videos性欧美| 91精品国产综合久久香蕉| 91情侣偷在线精品国产| 91成人精品网站| 青青久久aⅴ北条麻妃| 亚洲xxxxx电影| 国产一区二区三区在线观看视频| 亚洲深夜福利网站| 久久99国产精品自在自在app| 国产成人一区二区三区电影| 国产欧美精品日韩| 国产精品久久久久77777| 欧美电影电视剧在线观看| 久久久亚洲福利精品午夜| 91久热免费在线视频| 午夜精品三级视频福利| 亚洲一区www| 成人h视频在线| 亚洲色图15p| 欧美成人合集magnet| 性夜试看影院91社区| 亚洲在线第一页| 亚洲国产精品人久久电影| 欧美视频在线视频| 亚洲美腿欧美激情另类| 狠狠躁夜夜躁人人爽天天天天97| 少妇精69xxtheporn| 黑人精品xxx一区一二区| 亚洲国产精品字幕| 国产狼人综合免费视频| 国产一区二区激情| 国产视频欧美视频| 日韩av手机在线| 日韩精品福利在线|