午夜网站国产欧美_加勒比视频亚洲无码_91亚洲人人在字幕国产_18禁止美女爆乳免费网站_被消防员c哭高h野外糙汉动漫_午夜精品视频在线无码_gogowww人体大胆裸体午液_2021自拍偷区亚洲综合第一页_国产欧美一区二区精品性色超碰_99國產精品無碼

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

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

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

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

1、預(yù)處理指令

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

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

指令

描述

#define

定義宏

#include

包含一個源代碼文件

#undef

取消已定義的宏

#ifdef

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

#ifndef

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

#if

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

#else

#if 的替代方案

#elif

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

#endif

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

#error

當遇到標準錯誤時,輸出錯誤消息

#pragma

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



2、宏定義(#define)

宏定義又稱為宏代換、宏替換,簡稱“宏”。

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

格式如下:

#define 標識符 文本

其中的標識符就是所謂的符號常量,也稱為“宏名”。

例如,

#define PI 3.1415926

注意:

宏名一般用大寫

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

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

宏定義可以嵌套

2)帶參數(shù)的宏

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

格式如下:

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


例如,

#define S(a,b) a*b

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


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


3、文件包含

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


格式如下:


#include "文件名"

#include <文件名>

常見用法:

 #include <iostream>            //標準庫頭文件
#include <iostream.h>          //舊式的標準庫頭文件

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

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

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

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

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

3)包含可以嵌套;

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

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

4、 條件編譯

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

格式:

#ifdef 標識符
程序段1
#else

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

歡迎登錄盛圖科技

歡迎注冊盛圖科技

已有賬號,立即登錄