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

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

C語言編程入門之程序頭文件的簡要解析

2020-05-23 14:11:51
字體:
供稿:網(wǎng)友
這篇文章主要介紹了C語言編程入門之程序頭文件的簡要解析,包括頭文件重復包含問題等方面的說明,需要的朋友可以參考下
 

頭文件是擴展名為.h的文件,其中包含C函數(shù)的聲明和宏定義,也可以多個源文件之間共享。有兩種類型的頭文件:程序員編寫的文件,和編譯器中附帶的文件。

要求使用頭文件的程序,包括通過它,使用C語言預處理指令#include就像所看到的包含stdio.h頭文件,它隨著編譯器自帶。

包括一個頭文件等于復制頭文件的內(nèi)容,但我們不這樣做,因為這很容易出錯,一個好主意是我們不復制頭文件的內(nèi)容,特別是包括多個程序的源文件。

在C或C++程序的簡單做法是,我們把所有的常量,宏全系統(tǒng)全局變量和函數(shù)原型在頭文件,其中包括只要它要求包含頭文件。

包括/函語法
用戶和系統(tǒng)頭文件使用預處理指令#include包括在內(nèi)。它有以下兩種形式:

#include <file>

這種形式被用于系統(tǒng)頭文件。它會搜索系統(tǒng)目錄的標準列表中指定的文件的文件。可以在前面加上目錄到這個列表-I選項在編譯源代碼。

#include "file"

這種形式是用于自己的程序的頭文件。它會搜索包含當前文件的目錄中的文件命名的文件。可以在前面加上目錄到這個列表-I選項在編譯源代碼。

包括/函操作
#include指令的工作原理是指導C預處理器使用當前的源文件的其余部分,然后再繼續(xù)掃描指定的文件作為輸入。從預處理器的輸出包含后跟來自于#include指令后的文本的輸出已生成輸出,隨后從所包含的文件所得的輸出。例如,如果有一個頭文件 header.h 如下:

char *test (void);

主程序調(diào)用使用頭文件,類似 program.c 這樣:

int x;#include "header.h"int main (void){  puts (test ());}

編譯器會看到同樣數(shù)據(jù)流,因為它會如果program.c讀取

int x;char *test (void);int main (void){  puts (test ());}

一次性頭文件
如果頭文件恰好被包含兩次,編譯器將處理它的內(nèi)容兩次,將導致一個錯誤。使用標準方法以防止包圍文件的全部內(nèi)容在一個條件,是這樣的:

#ifndef HEADER_FILE#define HEADER_FILEthe entire header file file#endif

此構(gòu)建體通常被稱為包裝#ifndef。當該頭被再次包含,條件將是假的,因為HEADER_FILE定義。預處理器將跳過該文件的全部內(nèi)容,而編譯器不會看到它的兩次。

計算包函
有時,有必要選擇的幾個不同的一個頭文件被包含到程序中。它們可能會指定的配置參數(shù)被用于對不同類型的操作系統(tǒng),例如??梢杂靡幌盗袟l件句做到這一點,如下所示:

 #if SYSTEM_1  # include "system_1.h"#elif SYSTEM_2  # include "system_2.h"#elif SYSTEM_3  ...#endif

但是,隨著它的內(nèi)容增長就會變得單調(diào)乏味,代替預處理器提供了使用宏的頭文件名。這就是所謂的計算包括。而不是寫一個頭文件名#include直接參數(shù),只需把宏的名字代替:

 #define SYSTEM_H "system_1.h" ... #include SYSTEM_H

SYSTEM_H將被擴展,而預處理器將尋找system_1.h仿佛的#include已經(jīng)寫了原來的方式。 SYSTEM_H可以通過Makefile -D選項定義。


關(guān)于頭文件重復包含
1、如果頭文件A包含頭文件C,同時頭文件B也包含頭文件C,而寫的程序中包含了頭文件A,頭文件B,然后在編譯的時候就會出現(xiàn)頭文件C重復包含的錯誤
這個錯誤 只要在自己寫的頭文件中這樣寫 

#ifndef X  //X為你的標識符,保持唯一,可以長點,比如 #ifndef _INCLUDE_XXXXXX_H_#define X//這里是你的頭文件#endif

上面的X可以隨便取名(可以用來“裝”頭文件,所以X一般取名為大寫的頭文件的名字,只不過把"."換成“_”),只要保證#ifndef和#define后面是同一個X就可以了,只是一個標識而已。翻譯成中文就是,如果已經(jīng)#define X了,后面的就不執(zhí)行了。這樣在同一個c文件中,保證可以只#include一個頭文件,避免“在同一個c文件中對一個頭文件include兩次”的錯誤(第一次包含了該頭文件后,就已經(jīng)#define 了一次X,第二次包含時會遇到“#ifndef X”的判斷,既然已經(jīng)定義,只好對這個判斷說yes了,后面的不再執(zhí)行,
頭文件就不會再加進去)。

2、寫的代碼里, 頭文件A需要包含頭文件B,頭文件B需要包含頭文件C,這種情況#include A就沒有問題,不會出現(xiàn)重復包含的錯誤

注意:這里的#ifndef預處理是要解決在同一個c文件中包含了兩次同一個頭文件的錯誤,而在不同的c文件中是可以包含同一個頭文件的。

如果不用#ifndef來對頭文件做標記,又想“一勞永逸”地解決問題,不需要擔心重復包含,則就要形成自覺,不要在頭文件里定義變量或函數(shù),只聲明,這樣多次include這個頭文件時包含的都是聲明,就沒有問題,因此c語言里是允許多次聲明同一個函數(shù)或變量的。



發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
2020国内自拍视频| 成人在线观看免费高清| 日韩va亚洲va欧美va清高| 亚洲伊人影院| 综合色一区二区| 久久夜色精品亚洲噜噜国产mv| 国产私人尤物无码不卡| 欧美性天天影视| 国产精品久久久久久久电影| 色视频www在线播放| 国产成人在线观看网站| 中文字幕剧情在线观看一区| 亚洲精品国产第一综合99久久| 久久久久免费| 亚洲国产成人一区| 精品久久久久久久久国产字幕| 午夜国产在线观看| 尤物视频在线免费观看| 性欧美精品xxxx| 国产aⅴ综合色| 色综合一区二区| 17c丨国产丨精品视频| 成人国产精品久久久| 青青草成人在线观看| 亚洲欧洲日韩精品在线| 国产亚洲精品久久久久久久| 久久久久www| av午夜精品一区二区三区| 日韩精品欧美国产精品忘忧草| 91精品国产综合久久久蜜臀图片| 久久日本片精品aaaaa国产| 国产a亚洲精品| 亚洲免费观看在线观看| 精品成人a区在线观看| 精品国产乱码久久久久久久| 毛葺葺老太做受视频| 亚洲欧美国产高清| 色伦专区97中文字幕| 日本三级午夜理伦三级三| 欧美xxxxx牲另类人与| yjizz国产| 国产精品久久久久久久久电影网| 青春娱乐分类视频精品2动漫| 亚洲国产精品999| 91精品中文字幕| 日韩欧美国产精品一区| 色播五月综合网| 美国黄色小视频| 久久久香蕉视频| www.亚洲一区| 免费毛片网站在线观看| 成人伊人222| 一区三区视频| aaa大片免费观看| 亚洲欧洲一级| 91精品国自产在线| 人成网站免费观看| 成年人视频免费看| 亚洲全部视频| 亚洲国产精品一区二区久久| 欧美激情精品久久久久久久变态| 国产69精品久久久久777| 极品销魂美女一区二区三区| 91成人性视频| 性色视频在线| 成人综合在线视频| 51成人精品网站| 国产成人精品一区二区免费视频| 一区二区www| 91精品国产高久久久久久五月天| 精品国产免费av| 国产亚洲自拍av| 欧美女同一区| 五月婷婷久久综合| 亚洲国产精品久久久久婷蜜芽| 捆绑调教日本一区二区三区| 性一交一乱一色一视频麻豆| 日产国产欧美视频一区精品| 亚洲 欧美 日韩 国产综合 在线| 久久久xxx| 青青在线免费视频| 精品久久久久久久人人人人传媒| 日韩精品中文字幕在线播放| 天堂a√中文在线| 两个人看的在线视频www| 99精品人妻国产毛片| 刘玥91精选国产在线观看| 亚洲人成77777| 日日嗨av一区二区三区四区| 国内精品久久久久久不卡影院| 亚洲精品亚洲人成人网| 一级肉体全黄裸片| 无套内谢丰满少妇中文字幕| 裸体在线国模精品偷拍| 国产一区二区三区四| 18精品爽国产三级网站| 日日骚一区二区网站| 黄色小说综合网站| 成人激情av在线| 日本视频一区二区不卡| 国产精品成人免费| 一级视频在线播放| 国产特级嫩嫩嫩bbb| 色视频一区二区三区| 日韩欧美性视频| 国产综合欧美在线看| 国产精品国模大尺度视频| 毛片网站在线| 国产一区二区三区视频在线观看| 69堂成人精品免费视频| 亚洲欧洲美洲国产香蕉| 欧美黑人xx片| 欧美视频二区欧美影视| 国产午夜一区二区| 久久人体做爰大胆| 色777狠狠综合秋免鲁丝| 韩国三级av在线免费观看| 97碰碰碰免费公开在线视频| 亚洲蜜臀av乱码久久精品蜜桃| 91福利在线观看| 欧美精选视频在线观看| 国产精品av久久久久久麻豆网| 欧美区视频在线观看| 希岛爱理中文字幕| 欧美在线播放一区二区| www.国产成人| 波多野结衣高清视频| 精品三区视频| 日本精品视频在线观看| 国产一卡二卡三卡四卡| 天天亚洲美女在线视频| 国产毛片一区二区三区va在线| 久久福利资源站| 亚洲第一在线播放| 欧美日韩久久婷婷| 国产成人手机视频| www在线观看免费视频| 日韩在线中文字幕视频| 一个色妞综合视频在线观看| 51午夜精品视频| 久久99久久99精品蜜柚传媒| 国产xxxx振车| 欧洲杯足球赛直播| 色综合久久久无码中文字幕波多| 亚洲欧美日韩精品综合在线观看| 在线观看欧美精品| 国产91精品对白在线播放| 老色鬼精品视频在线观看播放| 日韩大片b站免费观看直播| 欧美三级日韩三级| 岛国成人毛片| 性欧美gay| 欧美疯狂party性派对| 日韩欧美在线观看免费| 加勒比在线日本| 国产精品人人做人人爽人人添| 中文字幕视频观看| 黄污在线观看| 亚洲第一视频区| 亚洲欧美韩国| 日韩精品2区| 色婷婷av一区二区三区在线观看| 国产浪潮av性色av小说| 日日噜噜噜夜夜爽亚洲精品| 精品午夜一区二区| 欧美在线日韩在线| avtt天堂资源网站| 欧美日韩xxxx| 四虎4hu影库永久地址| 欧美中文字幕视频| 日韩一区在线看| 97人妻精品一区二区三区动漫| 久久久99精品| 欧美日韩精品一区二区视频| 国产免费黄色| 国产精品网站在线播放| 成人在线视频中文字幕| 丝瓜av网站精品一区二区| 亚洲免费中文| 久久人人爽人人爽人人av| 国产日韩免费视频| 国产一区二区在线播放视频| 91九色视频在线观看| 国产99久久九九精品无码| 91视频国产高清| 在线h片观看| 在线观看av免费观看| 亚洲天堂成人在线观看| 欧美一区午夜精品| 最近更新的2019中文字幕| 亚洲国产国产亚洲一二三| 久久精品精品电影网| √最新版天堂资源网在线| 国产成人女人毛片视频在线| 一区二区在线观看免费视频| 亚洲字幕成人中文在线观看| 99精品福利视频| 五月婷婷深爱五月| 黄色在线网站噜噜噜| 最近的中文字幕在线看视频| 日本一区二区欧美| 日韩国产成人无码av毛片| 欧美黄色一级网站| 国产日韩一区二区三免费高清| 在线电影中文日韩| 黄色高清视频网站| 成人激情文学综合网| 亚洲大片在线观看| 欧美不卡一区二区三区| 国产乱子伦三级在线播放| 无码人妻丰满熟妇区96| 最新地址在线观看| 久久精品二区| 日本一区二区在线观看视频| 99porn视频在线| 日韩av在线最新| 伊人网在线视频| eeuss国产一区二区三区| 欧美激情欧美激情在线五月| 国产精品一区二区三区av麻| 久久免费精品视频| 狠狠88综合久久久久综合网| 国产精品夜夜夜爽张柏芝| 性高潮久久久久久| 亚洲精品久久久久久久蜜桃| 亚洲人的天堂男人爽爽爽| 久久久久久久影院| 国产精品福利视频一区二区三区| 精品日本美女福利在线观看| 综合久久成人| 亚洲影视在线播放| 免费看h片网站| 免费看美女毛片| 国精产品乱码一区一区三区四区| 久久人人88| 国产女主播在线直播| 黄动漫在线观看| 精品久久一二三| 久久久久久久尹人综合网亚洲| 国产精品久久久久久久久久三级| av中文在线观看| 国产69精品久久久久9999小说| 91精品导航| 99热99在线| 色综合久久久久久久久五月| 国产在线观看免费一区| 99re6这里只有精品视频在线观看| 国产精品视频入口| 蜜桃视频在线观看一区二区| 国产xxxxxx久色视频在| 9.1成人看片免费版| 中文一区一区三区免费在线观看| 在线午夜影院| 久草在线在线| 黄色大片在线免费看| 国产精品高潮呻吟久久久| va亚洲va日韩不卡在线观看| 日韩网站在线观看| 91色婷婷久久久久合中文| 国产蜜臀av在线播放| 欧美视频在线观看网站| 欧美一级色片| 超碰在线公开免费| 成人影院在线| 日韩av影视大全| 欧美高清精品一区二区| 人与动性xxxxx免费视频| 一区二区三区日韩视频| 精品国产乱码| 九色视频网站在线观看| 国产精品无码专区av免费播放| 亚洲免费在线| 欧美一区二区三区思思人| 亚洲午夜久久久久久久久电影院| 在线xxxxx| 91在线你懂得| 91片黄在线观看喷潮| 国模私拍一区二区国模曼安| jizzjizz欧美69巨大| 亚洲黄色小视频在线观看| 高潮毛片又色又爽免费| 九色丨porny丨| 日韩欧美一区二区三区久久婷婷| 亚洲综合日本| 亚洲国产精品成人一区二区| 久久天堂国产精品| 在线观看导航| 亚洲人成电影网站色…| 国产又大又黄又粗| 草民电影神马电影一区二区| 看电影就来5566av视频在线播放| 亚洲乱码国产一区三区| 成人全视频免费观看在线看| 成人av综合在线| av电影在线观看一区| 国产综合视频在线| 狠狠干在线视频| 亚洲成人av资源网| av中文字幕网址| 一区二区免费在线视频| 日韩一区二区视频在线| 青青在线视频免费| 亚洲国产精品网站| 中文在线a在线| 国产精品自产拍在线观看| 91夜夜蜜桃臀一区二区三区| 欧美剧在线免费观看网站| 色网站在线看| caoporn97在线视频| 中文字幕在线观看网站| 亚洲一区在线观看免费观看电影高清| 免费a级黄色片| 国产伦精品免费视频| 粉嫩av性色av蜜臀av网站| 亚洲第一区中文99精品| 91精品亚洲| 亚洲无人区码一码二码三码| 中文国产字幕在线观看| 久久夜色精品国产噜噜av| 色婷婷香蕉在线一区二区| 女人偷人在线视频| www夜片内射视频日韩精品成人| 久久xxxx| 理论片午午伦夜理片在线播放| 欧美美女视频在线观看| 乱一区二区三区在线播放| 男人看的污网站| 极品美乳网红视频免费在线观看|