巨集定義 號用法

2021-06-28 09:17:54 字數 826 閱讀 9957

#define s(#x)     //自動給引數x轉換為"x",轉換為字串

這裡的語言符號不一定是巨集的變數

#include#define s(x) system(#x)

void main()

c語言中 」##「,被稱為連線符

它是一種預處理運算子,用來把兩個語言符號(token)組合成單個語言符號

這裡的語言符號不一定是巨集的變數。並且雙#號不能作為第乙個或最後乙個元素存在

#include#include#define p(x) printf("%s=%d",#x,x)

#define i(x) i##x

void main()

#ifdef 和 #if defined 的區別在於,後者可以組成複雜的預編譯條件,比如

#if defined (aaa) && defined (bbb)

*********

#endif

#if defined (aaa) || version > 12

*********

#endif

而#ifdef 就不能用上面的用法,也就是說,當你要判斷單個巨集是否定義時

#ifdef 和 #if defined 效果是一樣的,但是當你要判斷複雜的條件時,只能用 #if

而#ifdef 就不能用上面的用法,也就是說,當你要判斷單個巨集是否定義時

#ifdef 和 #if defined 效果是一樣的,但是當你要判斷複雜的條件時,只能用 #if

巨集定義中的 號

一 名稱 字串化操作符 其作 將巨集定義中的傳入引數名轉換成用一對雙引號括起來引數名字串。使用條件 只能用於有傳入引數的巨集定義中,且必須置於巨集定義體中的引數名前 舉例 define example1 instr instr string str example1 abc 將會展成 string ...

巨集定義基本用法

巨集定義又稱為巨集代換 巨集替換,簡稱 巨集 格式 define 識別符號 字串其中的識別符號就是所謂的符號常量,也稱為 巨集名 預處理 預編譯 工作也叫做巨集展開 將巨集名替換為字串。掌握 巨集 概念的關鍵是 換 一切以換為前提 做任何事情之前先要換,準確理解之前就要 換 例 define pi ...

巨集定義的用法

有五種用法,含有引數和不含引數,行尾都不用加分號 define 識別符號 替換列表 類似於全域性變數了 如果其他檔案沒有包含定義巨集的檔案,則在巨集定義的位置結束,如果有包含,則到包含的檔案結束 define largest num 1000 define 識別符號 引數列表 替換列表 注意,替換列...