乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      c 中的宏

       My鏡像站 2012-02-10

      1、一些特殊的宏符號:

      #define VARIABLE_A(x) iTemp##x        //展開后相當于iTempx,##為連接符
      #define VARIABLE_B(x) #@x            //展開后相當于'x',x只允許是單獨字符,#@是字符化符號,后面的內(nèi)容是一個單獨的字符
      #define VARIABLE_C(x) #x            //展開后相當于"x",x允許是多個字符,#是字符串化符號,后面的內(nèi)容是字符串

      如果一個宏定義很長,超出一行,可以在每行的后面使用續(xù)行符’/’。

      2、預定義的宏

      在C++標準中款規(guī)定了一些預定義的宏。也就是說,這些宏不需要開發(fā)者定義,而是由預編譯器提供,開發(fā)者只要使用即可。

      __FILE__:當前源代碼文件名的字符串文字

      __LINE__:當前源代碼中的行號的整數(shù)常量

      __DATE__:進行預處理的日期(“Mmm dd yyyy”形式的字符串文字)

      __TIME__:源文件編譯時間,格式微“hh:mm:ss”

      __func__:當前所在函數(shù)名,在C++中為__FUNCTION__

      注意:上述宏兩側都是兩道下劃線,而不是一道

      3、宏指令

      C/C++的宏指令都是在ANSI標準中的。以下是一些常見的宏指令:

      ①⑤⑥⑦⑧⑨#error

      #error可以強迫編程程序停止編譯,用來在編譯期檢查環(huán)境是否符合要求或者與約束的條件發(fā)生了沖突。其使用格式是:

      #error token-string

      當程序在編譯過程中遇到這個關鍵字,就會停止編譯,產(chǎn)生了一個錯誤信息,并且輸出后面的token-string,例如:

      #if !defined(__cplusplus)
      #error C++ compiler required
      #endif

      上面這段代碼的意思是在編譯期檢查當前是否是C++編程環(huán)境,如果不是,就定義#error,讓編譯器停止編譯。

      ②#include

      #include使編譯程序將#include所指向的源文件導入進當前的源文件,被包含的文件必須被尖括號或者引號包圍起來。

      使用"#include”指令包含頭文件時,其后的頭文件有兩種方式,一種是使用雙引號,一種是使用尖括號。

      如果文件名用尖括號括起來,表面這個文件是一個工程或者C++標準庫頭文件。預編譯器會首先搜索在工程中預定義的目錄,然后搜索C++編譯器的安裝目錄??梢酝ㄟ^設置工程搜索路徑環(huán)境變量或者命令行選項來修改。

      如果文件名用一對引號括起來,則表面該文件是用戶提供的頭文件。預編譯器首先從當前文件目錄開始搜索,如果找不到,就從工程中定義的目錄和編譯器的安裝目錄查找。另外,也可以明確指定頭文件的路徑。例如包含c盤下的頭文件Header.h

      #include “c:/Header.h”

      注意:由于#include指令不是C++語句,所以在頭文件的字符串中,不必使用雙斜杠來間隔每一級路徑。

      ③#if,#else,#elif,#endif,#ifdef,#ifndef

      #if,#else,#elif,#endif,#ifdef,#ifndef屬于條件編譯命令,可以對程序的各個部分有選擇的進行編譯。對于前面 三個宏#if,#else,#elif,可以理解為if,else,和else if,#endif則表示這個條件編譯選擇的結束。

      #ifdef判斷后面的標識符是否被定義,通常都是指預定義的宏,#ifndef就是#ifdef的取反。

      包含警衛(wèi):

      所謂包含警衛(wèi)就是用一組宏命令將頭文件包起來,使其不會被重復包含。例如:

      #ifndef ANIMAL_H

      #define ANIMAL_H

      ……

      #endif

      #ifndef定義在頭文件所有內(nèi)容之前,#endif是定義在所有內(nèi)容之后的,用預編譯命令#ifndef和#endif將整個頭文件內(nèi)容包起來。這樣頭文件被不同文件包含時就不會有編譯錯誤了。通常的習慣是在所有的頭文件中都加入包含警衛(wèi)。

      關鍵字#prama once可以取到相同的作用(仍然有差別)。

      ④#undef

      #undef命令用來取消前面定義過的宏名

        本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊一鍵舉報。
        轉藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多