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

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

解析C++編程中的#include和條件編譯

2020-05-23 14:15:14
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了解析C++編程中的#include和條件編譯,是C++入門學習中的基礎知識,需要的朋友可以參考下

文件包含的作用

所謂“文件包含”處理是指一個源文件可以將另外一個源文件的全部內容包含進來,即將另外的文件包含到本文件之中。C++提供了#include命令用來實現“文件包含”的操作。如在file1.cpp中有以下#include命令:

 

 
  1. #include ″file2.cpp″ 

它的作用見圖示意。

解析C++編程中的#include和條件編譯

“文件包含”命令是很有用的,它可以節省程序設計人員的重復勞動。

#include命令的應用很廣泛,絕大多數C++程序中都包括#include命令?,F在,庫函數的開發者把這些信息寫在一個文件中,用戶只需將該文件“包含”進來即可(如調用數學函數的,應包含cmath文件—),這就大大簡化了程序,寫一行#include命令的作用相當于寫幾十行、幾百行甚至更多行的內容。這種常用在文件頭部的被包含的文件稱為“標題文件”或“頭部文件”。

頭文件一般包含以下幾類內容:

對類型的聲明。

函數聲明。

內置(inline)函數的定義。

宏定義。用#define定義的符號常量和用const聲明的常變量。

全局變量定義。

外部變量聲明。如entern int a;

還可以根據需要包含其他頭文件。

不同的頭文件包括以上不同的信息,提供給程序設計者使用,這樣,程序設計者不需自己重復書寫這些信息,只需用一行#include命令就把這些信息包含到本文件了,大大地提高了編程效率。由于有了#include命令,就把不同的文件組合在一起,形成一個文件。因此說,頭文件是源文件之間的接口。

include命令的兩種形式

在#include命令中,文件名除了可以用尖括號括起來以外,還可以用雙撇號括起來。#include命令的一般形式為:

#include <文件名>

#include ″文件名″

如:

#include

#include ″iostream″

都是合法的。二者的區別是: 用尖括號時,系統到系統目錄中尋找要包含的文件,如果找不到,編譯系統就給出出錯信息。

有時被包含的文件不一定在系統目錄中,這時應該用雙撇號形式,在雙撇號中指出文件路徑和文件名。

如果在雙撇號中沒有給出絕對路徑,如#include ″file2.c″則默認指用戶當前目錄中的文件。系統先在用戶當前目錄中尋找要包含的文件,若找不到,再按標準方式查找。如果程序中要包含的是用戶自己編寫的文件,宜用雙撇號形式。

對于系統提供的頭文件,既可以用尖括號形式,也可以用雙撇號形式,都能找到被包含的文件,但顯然用尖括號形式更直截了當,效率更高。

關于C++標準庫

在C++編譯系統中,提供了許多系統函數和宏定義,而對函數的聲明則分別存放在不同的頭文件中。如果要調用某一個函數,就必須用#include命令將有關的頭文件包含進來。C++的庫除了保留C的大部分系統函數和宏定義外,還增加了預定義的模板和類。但是不同C++庫的內容不完全相同,由各C++編譯系統自行決定。不久前推出的C++標準將庫的建設也納入標準,規范化了C++標準庫,以便使C++程序能夠在不同的C++平臺上工作,便于互相移植。新的C++標準庫中的頭文件一般不再包括后綴.h,例如:

 

 
  1. #include <string> 

但為了使大批已有的C程序能繼續使用,許多C++編譯系統保留了C的頭文件,即提供兩種不同的頭文件,由程序設計者選用。如:

 

 
  1. #include <iostream.h> //C形式的頭文件 
  2. #include <iostream> //C++形式的頭文件 

效果基本上是一樣的。建議盡量用符合C++標準的形式,即在包含C++頭文件時一般不用后綴。如果用戶自己編寫頭文件,可以用.h為后綴。

C++條件編譯#ifdef #else

一般情況下,在進行編譯時對源程序中的每一行都要編譯。但是有時希望程序中某一部分內容只在滿足一定條件時才進行編譯,也就是指定對程序中的一部分內容進行編譯的條件。如果不滿足這個條件,就不編譯這部分內容。這就是“條件編譯”。

有時,希望當滿足某條件時對一組語句進行編譯,而當條件不滿足時則編譯另一組語句。

條件編譯命令常用的有以下形式:

1) #ifdef 標識符

程序段1

#else

程序段2

#endif

它的作用是當所指定的標識符已經被#define命令定義過,則在程序編譯階段只編譯程序段1,否則編譯程序段2。#endif用來限定#ifdef命令的范圍。其中#else部分也可以沒有。

2) #if 表達式

程序段1

#else

程序段2

#endif

它的作用是當指定的表達式值為真(非零)時就編譯程序段1,否則編譯程序段2??梢允孪冉o定一定條件,使程序在不同的條件下執行不同的功能。

【例】在調試程序時,常常希望輸出一些所需的信息,而在調試完成后不再輸出這些信息,可以在源程序中插入條件編譯段。下面是一個簡單的示例。

 

 
  1. #include <iostream> 
  2. using namespace std; 
  3. #define RUN //在調試程序時使之成為注釋行 
  4. int main( ) 
  5. int x=1, y=2, z=3; 
  6. #ifndef RUN //本行為條件編譯命令 
  7. cout<<"x="<<x<<", y="<<y<<", z="<<z<<"/n"//在調試程序時需要輸出這些信息 
  8. #endif //本行為條件編譯命令 
  9. cout<<"x*y*z="<<x*y*z<<endl; 

第3行用#define命令的目的不在于用RUN代表一個字符串,而只是表示已定義過RUN,因此RUN后面寫什么字符串都無所謂,甚至可以不寫字符串。在調試程序時去掉第3行(或在行首加//,使之成為注釋行),由于無此行,故未對RUN定義,第6行據此決定編譯第7行,運行時輸出x,y,z的值,以便用戶分析有關變量當前的值。運行程序輸出:

 

 
  1. x=1, y=2, z=3 
  2. x*y*z=6 

在調試完成后,在運行之前,加上第3行,重新編譯,由于此時RUN已被定義過,則該cout語句不被編譯,因此在運行時不再輸出x,y,z的值。運行情況為:

 

 
  1. x*y*z=6 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美日韩综合视频网址| 国产日韩av在线播放| 色婷婷av一区二区三区久久| 在线观看久久久久久| 美女国内精品自产拍在线播放| 国产在线日韩在线| 欧美成人精品在线播放| 日韩精品视频免费专区在线播放| 欧美精品成人91久久久久久久| 日韩在线视频网站| 最近2019年中文视频免费在线观看| 亚洲视频第一页| 成人网在线免费观看| 国产97在线视频| 成人444kkkk在线观看| 国产精品成人aaaaa网站| 亚洲色图欧美制服丝袜另类第一页| 亚洲黄色av女优在线观看| 国产精品自拍偷拍视频| 国模吧一区二区| 久久久久国产一区二区三区| 国产精品91视频| 亚洲视频在线免费看| 国产精品久久一| 欧美在线亚洲一区| 欧美激情视频在线免费观看 欧美视频免费一| 91国产美女在线观看| 久久成人这里只有精品| 在线精品国产欧美| 国产精品美女免费视频| 91成人在线视频| 欧美亚洲另类视频| 色综合亚洲精品激情狠狠| 少妇高潮久久久久久潘金莲| 欧美一区二区三区免费观看| 在线国产精品播放| 久久久久久久久久久网站| 免费av在线一区| 亚洲色图第三页| 国产精品久久久久久久久久久久久| 国产亚洲一区精品| 亚洲精品日韩欧美| 日本高清不卡在线| 狠狠操狠狠色综合网| 国产成人精品在线| 4444欧美成人kkkk| 亚洲韩国欧洲国产日产av| 69视频在线播放| 亚洲毛片在线免费观看| 国产一区二中文字幕在线看| 国产精品va在线播放| 色999日韩欧美国产| www.xxxx欧美| 日韩欧美亚洲国产一区| 91九色视频在线| 欧美日韩亚洲天堂| 国产精品视频久久久| 国产欧美中文字幕| 欧美国产日韩二区| 国产免费观看久久黄| 在线观看成人黄色| 国外色69视频在线观看| 国产亚洲aⅴaaaaaa毛片| 尤物九九久久国产精品的特点| 欧美激情视频一区二区三区不卡| 欧美在线性视频| 91精品国产综合久久香蕉| 日韩精品视频在线观看免费| 92裸体在线视频网站| 欧美国产精品va在线观看| 51视频国产精品一区二区| 亚洲国产欧美一区二区三区同亚洲| 欧美性生交大片免网| 亚洲国产高清自拍| 日韩欧美中文免费| 最近更新的2019中文字幕| 成人免费看片视频| 国产精品av网站| 欧美一区视频在线| 精品国偷自产在线视频99| 欧美精品中文字幕一区| 久久久国产影院| 国产ts人妖一区二区三区| 不卡伊人av在线播放| 亚洲无限av看| 91精品视频免费| 日韩免费在线视频| 亚洲综合第一页| 国产成人综合精品| 亚洲激情久久久| 亚洲自拍高清视频网站| 欧美一级免费视频| 欧美日韩xxx| 国产成人综合av| 国产999精品| 欧美成人免费全部观看天天性色| 国产欧美日韩丝袜精品一区| 欧美性猛交99久久久久99按摩| 国产精品99免视看9| 欧美一区二区三区艳史| 欧美日韩亚洲一区二| 亚洲第一综合天堂另类专| 亚洲国产古装精品网站| 亚洲性69xxxbbb| 日韩在线视频国产| 在线亚洲欧美视频| 国产成人小视频在线观看| 色在人av网站天堂精品| 久久精品国产99国产精品澳门| 国产精品久久综合av爱欲tv| 久久精品国产99国产精品澳门| 久久电影一区二区| 日韩高清电影免费观看完整| 欧美精品免费播放| 久久国产精品亚洲| 亚洲一区二区三区香蕉| 中文字幕一精品亚洲无线一区| 日韩欧美一区二区在线| 欧洲亚洲免费在线| 国产精品亚洲第一区| 精品无码久久久久久国产| 国产一区二区久久精品| 亚洲成人激情小说| 国产美女精品视频| 中文字幕久热精品视频在线| 国产精品吴梦梦| 日韩免费观看高清| 91视频九色网站| 日韩福利在线播放| 亚洲色图校园春色| 国产精品成人一区二区三区吃奶| 亚洲国产精品推荐| 中文字幕亚洲欧美日韩在线不卡| 精品国偷自产在线视频99| 一本一本久久a久久精品牛牛影视| 久久人91精品久久久久久不卡| 国内精品久久久久| 欧美影院久久久| 久久精品99无色码中文字幕| 欧美精品在线极品| 亚洲视频在线视频| 久久久久成人网| 精品国产户外野外| 色综合视频网站| 久久免费视频观看| 日韩在线中文视频| 日韩av三级在线观看| 亚洲男人第一av网站| 欧美大片免费观看在线观看网站推荐| 91精品免费久久久久久久久| 久久久午夜视频| 久久色在线播放| 国产精品99久久久久久www| 国产精品a久久久久久| 91久久在线观看| 91高潮精品免费porn| 久久国产精品首页| 国产mv久久久| 国产精品中文在线| 日韩大陆欧美高清视频区| 久久久久久久久久久成人| 日韩精品视频免费| 欧洲精品毛片网站| 成人淫片在线看|