程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> C++預處理命令簡要介紹

C++預處理命令簡要介紹

編輯:C++入門知識

C++編程語言一經推出就憑借自身性能的優勢躍居開發領域領頭羊地位。我們今天將會在這篇文章中為大家介紹一下有關C++預處理命令在宏的操作中體現了哪些作用。希望可以幫助大家輕松理解這方面的知識。

  • C++類靜態成員初始化相關問題答疑
  • C++類型轉換基本概念淺談
  • C++編譯器命令列表總結
  • C++時間基本概念分享
  • C++計時具體操作方法詳解

C++中宏總結C程序的源代碼中可包括各種編譯指令,這些指令稱為預處理命令。雖然它們實際上不是C語言的一部分,但卻擴展了C程 序設計的環境。本節將介紹如何應用預處理程序和注釋簡化程序開發過程,並提高程序的可讀性。

宏不是C++ 語言的一部分,宏在編譯前由預處理器處理。 宏的部分功能在C++ 中可以由template、inline、const代替。我認為現在保留在C++中的最大用處是自動代碼生成ANSI標准定義的C++預處理命令包括:

#define,#error,#i nclude,#if,#else,#elif,#endif,#ifdef,#ifndef,#undef,#line,#pragma等。

非常明顯,所有預處理命令均以符號#開頭,下面我們將會主要針對前三個常用的處理命令分別加以介紹。

C++預處理命令1、#define

命令#define定義了一個標識符及一個串。在源程序中每次遇到該標識符時,均以定義的串代換它。ANSI標准將標識符定義為宏名,將替換過程稱為宏 替換。命令的一般形式為:

#define identifier string

注意:

該語句沒有分號。在標識符和串之間可以有任意個空格,串一旦開始,僅由一新行結束。

宏名定義後,即可成為其它宏名定義中的一部分。

宏替換僅僅是以文本串代替宏標識符,前提是宏標識符必須獨立的識別出來,否則不進行替換。例如:

#define XYZ this is a test,使用宏printf("XYZ");//該段不打印"this is a test"而打印"XYZ"。因為預編譯器識 別出的是"XYZ"

如果串長於一行,可以在該行末尾用一反斜槓' \'續行。

C++預處理命令2、#error

處理器命令#error強迫編譯程序停止編譯,主要用於程序調試。

C++預處理命令3、#i nclude

命令#i nclude使編譯程序將另一源文件嵌入帶有#i nclude的源文件,被讀入的源文件必須用雙引號或尖括號括起來。例如:

#include"stdio.h"或者#include

這兩行代碼均使用C編譯程序讀入並編譯用於處理磁盤文件庫的子程序。

將文件嵌入#include命令中的文件內是可行的,這種方式稱為嵌套的嵌入文件,嵌套層次依賴於具體實現。

如果顯式路徑名為文件標識符的一部分,則僅在哪些子目錄中搜索被嵌入文件。否則,如果文件名用雙引號括起來,則首先檢索當前工作目錄。如果未發現文件, 則在命令行中說明的所有目錄中搜索。如果仍未發現文件,則搜索實現時定義的標准目錄。

如果沒有顯式路徑名且文件名被尖括號括起來,則首先在編譯命令行中的目錄內檢索。

如果文件沒找到,則檢索標准目錄,不檢索當前工作目錄。

以上就是針對三個常用的C++預處理命令的簡單介紹。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved