最新国产AV资源网_亚洲熟女AV天堂五月天_中文字幕丶东京热_中文字幕乱码免费高清视频

Hi,您好,歡迎來到西安盛圖軟件科技有限公司!

C++ 預(yù)處理命令

發(fā)布時(shí)間:2023-12-06 13:43:22

C++是從C語言發(fā)展過來,預(yù)處理也是繼承自C語言。預(yù)處理是在編譯之前進(jìn)行的處理,C/C++的預(yù)處理主要是宏定義、文件包含、條件編譯。

1、預(yù)處理指令

預(yù)處理指令是以#號(hào)開頭的代碼行,# 號(hào)必須是該行除了任何空白字符外的第一個(gè)字符。# 后是指令關(guān)鍵字,在關(guān)鍵字和 # 號(hào)之間允許存在任意個(gè)數(shù)的空白字符,整行語句構(gòu)成了一條預(yù)處理指令,該指令將在編譯器進(jìn)行編譯之前對(duì)源代碼做某些轉(zhuǎn)換。

常用的預(yù)處理指令:

指令

描述

#define

定義宏

#include

包含一個(gè)源代碼文件

#undef

取消已定義的宏

#ifdef

如果宏已經(jīng)定義,則返回真

#ifndef

如果宏沒有定義,則返回真

#if

如果給定條件為真,則編譯下面代碼

#else

#if 的替代方案

#elif

如果前面的 #if 給定條件不為真,當(dāng)前條件為真,則編譯下面代碼

#endif

結(jié)束一個(gè) #if……#else 條件編譯塊

#error

當(dāng)遇到標(biāo)準(zhǔn)錯(cuò)誤時(shí),輸出錯(cuò)誤消息

#pragma

使用標(biāo)準(zhǔn)化方法,向編譯器發(fā)布特殊的命令到編譯器中



2、宏定義(#define)

宏定義又稱為宏代換、宏替換,簡(jiǎn)稱“宏”。

1) 不帶參數(shù)的宏定義

格式如下:

#define 標(biāo)識(shí)符 文本

其中的標(biāo)識(shí)符就是所謂的符號(hào)常量,也稱為“宏名”。

例如,

#define PI 3.1415926

注意:

宏名一般用大寫

使用宏可提高程序的通用性和易讀性,減少不一致性,減少輸入錯(cuò)誤和便于修改。例如:數(shù)組大小常用宏定義

可以用#undef命令終止宏定義的作用域

宏定義可以嵌套

2)帶參數(shù)的宏

除了一般的字符串替換,還要做參數(shù)代換。

格式如下:

#define 宏名(參數(shù)表) 文本


例如,

#define S(a,b) a*b

area=S(3,2);進(jìn)行宏替換,第一步被換為area=a*b; ,第二步被換為area=3*2;


注意:有時(shí)宏替換后和我們預(yù)期的結(jié)果不一樣需要注意一下,宏替換只是簡(jiǎn)單的替換。


3、文件包含

C++ 程序文件中一個(gè)文件包含另一個(gè)文件的內(nèi)容。


格式如下:


#include "文件名"

#include <文件名>

常見用法:

 #include <iostream>            //標(biāo)準(zhǔn)庫(kù)頭文件
#include <iostream.h>          //舊式的標(biāo)準(zhǔn)庫(kù)頭文件

注意iostream.h只支持窄字符集,iostream則支持窄/寬字符集。一般使用iostream

相關(guān)文檔: C語言中#include <filename> 和 #include "filename"的區(qū)別

編譯時(shí)以包含處理以后的文件為編譯單位,被包含的文件是源文件的一部分。
編譯以后只得到一個(gè)目標(biāo)文件
.obj
被包含的文件又被稱為“標(biāo)題文件”或“頭部文件”、“頭文件”,并且常用.h作擴(kuò)展名。
修改頭文件后所有包含該文件的文件都要重新編譯
頭文件的內(nèi)容除了函數(shù)原型和宏定義外,還可以有結(jié)構(gòu)體定義,全局變量定義:

1)一個(gè)#include命令指定一個(gè)頭文件;

2)文件1包含文件2,文件2用到文件3,則文件3的包含命令#include應(yīng)放在文件1的頭部第一行;

3)包含可以嵌套;

4)<文件名>稱為標(biāo)準(zhǔn)方式,系統(tǒng)到頭文件目錄查找文件,"文件名"則先在當(dāng)前目錄查找,而后到頭文件目錄查找;

5)被包含文件中的靜態(tài)全局變量不用在包含文件中聲明。

4、 條件編譯

有些語句在條件滿足時(shí)才編譯。例如,不同平臺(tái)使用不同的代碼實(shí)現(xiàn),需要針對(duì)平臺(tái)來編譯。

格式:

#ifdef 標(biāo)識(shí)符
程序段1
#else

上一篇:C++ 作用域及命名空間
下一篇:C++ File文件處理 相關(guān)函數(shù)方法

歡迎登錄盛圖科技

歡迎注冊(cè)盛圖科技

已有賬號(hào),立即登錄