預處理命令詳解

2023-02-10 07:03:04 字數 1136 閱讀 2895

指令用途

#空指令,無任何效果

#include包含乙個源**檔案

#define定義巨集

#undef取消已定義的巨集

#if如果給定條件為真,則編譯下面**

#ifdef如果巨集已經定義,則編譯下面**

#ifndef如果巨集沒有定義,則編譯下面**

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

#endif結束乙個#if……#else條件編譯塊

#error停止編譯並顯示錯誤資訊

一、檔案包含

#include預處理指令的作用是在指令處展開被包含的檔案。包含可以是多重的,也就是說乙個被包含的檔案中還可以包含其他檔案。標準c編譯器至少支援八重巢狀包含。

預處理過程不檢查在轉換單元中是否已經包含了某個檔案並阻止對它的多次包含。這樣就可以在多次包含同乙個標頭檔案時,通過給定編譯時的條件來達到不同的效果。例如:

#defineaaa

#include""

#undefaaa

#include""

為了避免那些只能包含一次的標頭檔案被多次包含,可以在標頭檔案中用編譯時條件來進行控制。例如:

/*#ifndefmy_h

#definemy_h

……#endif

在程式中包含標頭檔案有兩種格式:

#include<>

#include""

第一種方法是用尖括號把頭檔案括起來。這種格式告訴預處理程式在編譯器自帶的或外部庫的標頭檔案中搜尋被包含的標頭檔案。第二種方法是用雙引號把頭檔案括起來。

這種格式告訴預處理程式在當前被編譯的應用程式的源**檔案中搜尋被包含的標頭檔案,如果找不到,再搜尋編譯器自帶的標頭檔案。

採用兩種不同包含格式的理由在於,編譯器是安裝在公共子目錄下的,而被編譯的應用程式是在它們自己的私有子目錄下的。乙個應用程式既包含編譯器提供的公共標頭檔案,也包含自定義的私有標頭檔案。採用兩種不同的包含格式使得編譯器能夠在很多標頭檔案中區別出一組公共的標頭檔案。

二、巨集巨集定義了乙個代表特定內容的識別符號。預處理過程會把源****現的巨集識別符號替換成巨集定義時的值。巨集最常見的用法是定義代表某個值的全域性符號。

巨集的第二種用法是定義帶引數的巨集,這樣的巨集可以象函式一樣被呼叫,但它是在呼叫語句處展開巨集,並用呼叫時的實際引數來代替定義中的形式引數。

C語言預處理命令有哪些

往往我說今天上課的內容是預處理時,便有學生質疑 預處理不就是include 和define麼?這也用得著講啊?是的,非常值得討論,即使是include 和define。但是預處理僅限於此嗎?遠遠不止。先看幾個個常識性問題 a 預處理是c 語言的一部分嗎?b 包含 號的都是預處理嗎?c 預處理指令後面...

dos批處理命令詳解

4.rem 命令 注釋命令,在c語言中相當與它並不會被執行,只是起乙個注釋的作用,便於別人閱讀和你 自己日後修改。rem message sample rem here is the description.5.pause 命令 執行 pause 命令時,將顯示下面的訊息 press any key...

dos批處理命令詳解

一.簡單批處理內部命令簡介 1.echo 命令 開啟回顯或關閉請求回顯功能,或顯示訊息。如果沒有任何引數,echo 命令將顯示當前回顯設定。語法 echo message sample echo off echo hello world 在實際應用中我們會把這條命令和重定向符號 也稱為管道符號,一般...