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

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

干貨分享|小白必看!C預(yù)處理器

發(fā)布時間:2023-06-16 16:06:24

預(yù)處理器

C 預(yù)處理器不是編譯器的組成部分,但是它是編譯過程中一個單獨的步驟。簡言之,C 預(yù)處理器只不過是一個文本替換工具而已,它們會指示編譯器在實際編譯之前完成所需的預(yù)處理。我們將把 C 預(yù)處理器(C Preprocessor)簡寫為 CPP。

所有的預(yù)處理器命令都是以井號(#)開頭。它必須是第一個非空字符,為了增強可讀性,預(yù)處理器指令應(yīng)從第一列開始。

預(yù)處理器實例

分析下面的實例來理解不同的指令。

#define MAX_ARRAY_LENGTH 20

這個指令告訴 CPP 把所有的 MAX_ARRAY_LENGTH 定義為 20。使用 #define 定義常量來增強可讀性。

#include #include "myheader.h"

這些指令告訴 CPP 從系統(tǒng)庫中獲取 stdio.h,并添加文本到當(dāng)前的源文件中。下一行告訴 CPP 從本地目錄中獲取 myheader.h,并添加內(nèi)容到當(dāng)前的源文件中。

#undef  FILE_SIZE#define FILE_SIZE 42

這個指令告訴 CPP 取消已定義的 FILE_SIZE,并定義它為 42。

#ifndef MESSAGE   #define MESSAGE "You wish!"#endif

這個指令告訴 CPP 只有當(dāng) MESSAGE 未定義時,才定義 MESSAGE。

#ifdef DEBUG   /* Your debugging statements here */#endif

這個指令告訴 CPP 如果定義了 DEBUG,則執(zhí)行處理語句。在編譯時,如果您向 gcc 編譯器傳遞了 -DDEBUG 開關(guān)量,這個指令就非常有用。它定義了 DEBUG,您可以在編譯期間隨時開啟或關(guān)閉調(diào)試。

預(yù)定義宏

ANSI C 定義了許多宏。在編程中您可以使用這些宏,但是不能直接修改這些預(yù)定義的宏。

預(yù)處理器運算符

C 預(yù)處理器提供了下列的運算符來幫助您創(chuàng)建宏:

宏延續(xù)運算符(\)

一個宏通常寫在一個單行上。但是如果宏太長,一個單行容納不下,則使用宏延續(xù)運算符(\)。例如:

#define  message_for(a, b)  \
    printf(#a " and " #b ": We love you!\n")
字符串常量化運算符(#)

在宏定義中,當(dāng)需要把一個宏的參數(shù)轉(zhuǎn)換為字符串常量時,則使用字符串常量化運算符(#)。在宏中使用的該運算符有一個特定的參數(shù)或參數(shù)列表。


上一篇:干貨分享|C文件讀寫
下一篇:干貨分享|C頭文件

歡迎登錄盛圖科技

歡迎注冊盛圖科技

已有賬號,立即登錄