C 預處理器的簡單用法

2021-07-26 14:21:01 字數 1422 閱讀 9446

//

1、預處理器

預處理器是c++程式編譯的一部分;

預處理器處理程式的原始碼,在編譯器之前執行;

預處理器是c++繼承c語言的,但是c++的大量特徵減少了預處理器的使用;

c++預處理器的乙個重要的用法:#include《標頭檔案》,將標頭檔案併入程式。

2、#include是如何工作的

#include是c++預處理器的一部分,預處理器用指定的標頭檔案內容代替每個#include。

3、標頭檔案經常包含其他標頭檔案,原始檔會多次包含同乙個標頭檔案。

標頭檔案一:

example_1.h 

[cpp]view plain

copy

inta;  

intb;  

標頭檔案二:

example_2.h

[cpp]view plain

copy

#include"example_1.h"

intc;  

intd;  

原始檔test.cpp

[html]view plain

copy

#include 

<

example_1.h

>

#include<

example_2.h

>

int main()    

在設計標頭檔案時,應該可以使標頭檔案多次包含在乙個原始檔中,但是程式設計師必須保證的是,多次包含同一標頭檔案不會引起該檔案定義的類和物件被多次定義,從上面的例子來看,顯然會在example_2.h標頭檔案中對a和b進行一次定義,在test.cpp原始檔中對a和b在進行一次定義。這樣會產生什麼後果呢?

4、針對上面出現的問題,標頭檔案在原始檔中被多次包含,引起了對頭檔案中定義的類和物件多次定義的現象,可以使用預處理器變數來解決。

#define指示接受乙個名字並定義該變數為預處理器變數

#ifndef指示檢測指定的預處理器變數是否定義。

上面的第乙個標頭檔案可以改為:

[cpp]view plain

copy

example_1.h   

#ifndef example1

#define example!

inta;  

intb;  

#endif

這樣,編譯器在編譯的時候,會先編譯example_2.h標頭檔案,發現沒有定義example1預處理器變數,於是定義該變數,並定義int a,int b。

編譯器繼續編譯test.cpp原始檔是,發現已經定義example1預處理器變數,#ifndef指示為假,該指示和#endif之間的**將全部被忽略。

一般預處理器用於工程專案中,可用vs等進行。

C 預處理器指令的用法

c 預處理器指令是在編譯時呼叫的。預處理器指令 preprocessor directive 告訴c 編譯器要編譯哪些 並指出如何處理特定的錯誤和警告。c 預處理器指令還可以告訴c 編輯器有關 組織的資訊。1.定義符號和取消符號定義的預處理指令 define 和 undef 預處理指令都以 號開頭並...

C 預處理器指令的用法

c 預處理器指令是在編譯時呼叫的。預處理器指令 preprocessor directive 告訴c 編譯器要編譯哪些 並指出如何處理特定的錯誤和警告。c 預處理器指令還可以告訴c 編輯器有關 組織的資訊。1 定義符號和取消符號定義的預處理指令 define 和 undef 預處理指令都以 號開頭並...

C 預處理器的簡單介紹

1 預處理器 預處理器是c 程式編譯的一部分 預處理器處理程式的原始碼,在編譯器之前執行 預處理器是c 繼承c語言的,但是c 的大量特徵減少了預處理器的使用 c 預處理器的乙個重要的用法 include 標頭檔案 將標頭檔案併入程式。2 include是如何工作的 include是c 預處理器的一部...