1. #(字串化操作,自動將巨集引數字串化),例如:
#define tostring(x) #x
char* str = tostring(123132); // str = "123132"
2. ##(引數連線操作,即允許巨集引數連線其他符號,構成新的引數,##
的左右符號必須能夠組成乙個有意義的符號),例如:
#define conn(x, y) x##y
int n = conn(123, 456); // n =123456
char* str = conn("asdf", "adf"); // str = "asdfadf"
3. #@(引數字元化操作,將巨集引數字元化,取引數中的最後乙個字元,引數超過四個字元報錯),例如:
#define tochar(x) #@x
char a = tochar(1); // a = '1'
char a = tochar(123); // a = '3'
4. \(行繼續操作,當定義的巨集不能用一行表達完整時,可以用\
表示下一行繼續此巨集的定義,最後一行不要加\)
5.__va_args__
(用來接受不定數量的引數),例如:
#define eprintf(...) fprintf (stderr, __va_args__)
eprintf ("%s:%d: ", input_file, line_no) // fprintf (stderr, "%s:%d: ", input_file, line_no)
C C 巨集的特殊符號
在c c 中,巨集定義是由define完成的,define中有三個特殊的符號值得我們注意 1.在巨集展開的時候會將 後面的引數替換成字串,如 define p exp printf exp 呼叫p asdfsadf 的時候會將 exp換成 asdfsadf 2.將前後兩個的單詞拼接在一起。例如 th...
perl中特殊符號
陣列 x x名字前面是美元符號 後面是花括號 則其為 hash 元素 要引用整個 hash,使用百分號 作為字首。前面幾頁中使用的 hash 的名字為 family name。系統產生的一些可讀的資訊,也可能是出錯的資訊 子函式引數變數自己本身 子程式的私有變數 x 呼叫子函式x 資料輸入.如果沒有...
Bat 中特殊符號
隱藏命令的回顯。在for中表示使用增強的變數擴充套件 在set中表示使用擴充套件環境變數指定位置的字串 在set a中表示按位取反。使用兩個 包含乙個字串表示引用環境變數。比如乙個 time 可以擴充套件到當前的系統時間 單個 緊跟0 9的乙個數字表示引用命令列引數 用於for中表示引用迴圈變數 連...