1. 程式人生 > >C語言標準預定義的巨集

C語言標準預定義的巨集

C語言標準指定了一些預定義巨集, 常用的如下:


__DATE__     進行預處理的日期,表示為Mmm dd yyyy 形式的字串常量
__FILE__     代表當前原始碼檔名的字串
__LINE__     代表當前原始碼檔案中行號的整數常量
__STDC__     設定為1時,表示該實現遵循C標準
__STDC_HOSTED__  為本機環境設定為,否則設為0
__STDC_VERSION__ 為C99時設定為199901L
__TIME__     原始檔的編譯時間
__func__     C99提供的,為所在函式名的字串

__VA_ARGS__: C99可變引數巨集,用法如下:

例如:

示例1:

#define debug(...) printf(__VA_ARGS__)

(...)代表一個可以變化的引數表。使用保留名 __VA_ARGS__ 把引數傳遞給巨集。當巨集的呼叫展開時,實際的引數就傳遞給 printf()了。例如:

debug("X = %d\n", x);


會被巨集替換成:

printf("X = %d\n", x);
示例2: #define debug(format, ...) fprintf (stderr, format, __VA_ARGS__)
這裡,'...'指可變引數。這類巨集在被呼叫時,...被表示成零個或多個符號。當被呼叫時,巨集替換以後,那些符號序列將代替裡面的__VA_ARGS__識別符號

相關推薦

C語言標準預定巨集

C語言標準指定了一些預定義巨集, 常用的如下: __DATE__     進行預處理的日期,表示為Mmm dd yyyy 形式的字串常量 __FILE__     代表當前原始碼檔名的字串 __LINE__     代表當前原始碼檔案中行號的整數常量 __STDC__

關於標準C語言預定巨集

標準C語言預處理要求定義某些物件巨集,每個預定義巨集的名稱一兩個下劃線字元開頭和結尾,這些預定義巨集不能被取消定義(#undef)或由程式設計人員重新定義。下面預定義巨集表,被我抄了下來。 __LINE__ 當前程式行的行號,表示為十進位制整型常量 __

c語言的變參使用 可變引數巨集 標準預定巨集

gcc的預處理提供的可變引數巨集定義真是好用: #ifdef DEBUG #define dbgprint(format,args...) / fprintf(stderr, format, ##args) #else #define dbgprint(fo

ANSI C標準標準預定巨集整理(備用)

#include 包含一個原始碼檔案 #define 定義巨集 #undef 取消定義巨集 #if 如果條件為真,則編譯下面的程式碼 #elif 如果前面的#if不為真,則編譯下面的程式碼 #endif 結束一個#if...#elif條件編譯塊 #ifdef 如果已經定義了某個巨集,則編譯下面的程式碼 #i

C++ 中常見預定巨集的使用【轉】

(轉自:https://blog.csdn.net/hgl868/article/details/7058906) 在標準C以及各中編譯器中定義了一些物件巨集, 這些巨集的名稱以"__"開頭和結尾, 並且都是大寫字元. 這些預定義巨集可以被#undef, 也可以被重定義。  

_MSC_VER[Microsoft C/C++編譯器版本預定巨集]

_MSC_VER是Microsoft C/C++編譯器版本預定義巨集。 _MSC_VER可以分解為: MS:Microsoft的簡寫。 C:MSC就是Microsoft的C/C++編譯器。 VER:Version的簡寫。_MSC_VER的意思就是:Microsoft的C/C

標準C語言中的預定巨集(部分)

(以下巨集是以兩個下劃線開頭的,並以兩個下劃線結尾的) __FILE__                                          記錄當前原始檔的名稱的字串 __DATE__                                    

C語言預定巨集(__LINE__、__DATE__等)淺析

ANSIC標準定義了以下5種可供C語言使用的預定義巨集: __LINE__ 在原始碼中插入當前原始碼行號 __FILE__ 在原始碼中插入當前原始碼檔名 __DATE__ 在原始碼中插入當前編譯日期〔注意和當前系統日期區別開來〕 __TIME__ 在原始碼中插入當前編譯時間

C語言中幾個預定巨集

顧名思義,預定義巨集就是已經預先定義好的巨集,我們可以直接使用,無需再重新定義。ANSI C 規定了以下幾個預定義巨集,它們在各個編譯器下都可以使用:__LINE__:表示當前原始碼的行號;__FILE__:表示當前原始檔的名稱;__DATE__:表示當前的編譯日期;__TI

關鍵字: C/C++,預定巨集,__FILE__, __LINE__, __DATE__,__TIME__,__func__,__FUNCTION__ __FILE__:當前原始碼檔名的字串文

C/C++,預定義巨集,__FILE__, __LINE__, __DATE__,__TIME__,__func__,__FUNCTION__ __FILE__:當前原始碼檔名的字串文字 __LINE__:當前原始碼中的行號的整數常量 __DATE__:進行預處理的

C語言標準

span oca baidu linu math.h mit signal url math   共15個,請查看,在linux下的目錄位/usr/share/include assert.h ctype.h errno.h float.h limits.h

[development][C] C語言標準

inux https www .html cti six man c語言標準 efs GUN C的標準文檔: 也就是glibc https://www.gnu.org/software/libc/ http://man7.org/linux/man-pages/dir_

c語言標準輸入和scanf的關系

我們 scanf etc 鍵盤輸入 div while image 標準輸入 這樣的 int a scanf("%d",&a);  什麽意思,是從鍵盤讀取一個數字存放到a中。錯,scanf和所有從鍵盤獲取輸入數據的函數都不是直接從鍵盤獲取數據的,而是從“標準輸

嵌入式C語言入門——關鍵字&巨集

C關鍵字 預處理 巨集函式 巨集的有效範圍 撤銷巨集 內建巨集 條件編譯ifdef #與## 關鍵字 Static Static修飾區域性變數 Stati

C語言標準符號

符號 名稱 符號 名稱 , 逗號 > 右尖括號 . 圓點 ! 感嘆號

STM32F10xxx_Keil中新增的預定巨集

更新記錄 version status description date author V1.0 C Create Document 2018.10.15 John Wan status: C―― Create, A—— Add, M——

利用C語言標準庫生成一個真隨機數的方法

        首先需要明確一點的是,計算機系統中生成一個隨機數,需要依賴一個隨機量,這個隨機量稱為隨機數種子。否則生成的就是偽隨機數。隨機數種子的值越多樣化,生成的數就越隨機。通常,隨機數種子從計算機系統外部引入,例如人的操作、ADC採集到的值等。         C語言

gcc 預定巨集(x86-64)

列印方法: touch test.c gcc -E -dM -c test.c >> marco_x86_64.txt #define __DBL_MIN_EXP__ (-1021) #define __UINT_LEAST16_MAX__ 65535 #def

linux/windows下獲取gcc(mingw)編譯器預定巨集的方式

我們在閱讀一些原始碼時經常發現類似這樣的巨集WIN32,_WIN64,__x86_64,__linux卻找不到在哪裡定義的,這些其實是編譯器預定義的巨集。在不同的作業系統內容不同。 為了知道gcc編譯

程式猿之---C語言細節9(巨集定義、max(a,b)巨集定義細節、大小端判斷、(int&)a什麼意思)

主要內容:巨集定義、max(a,b)巨集定義細節、大小端判斷、(int&)a什麼意思 #if 1 #include <stdio.h> // 注意空格 #define F (x) ((x) - 1) // F代表後面 #define F(x)