1.#運算子
作用:進行字串的轉換
作用域:只能在巨集定義中使用
示例:
#define fun(x) #x //將x轉化成為字串
//逗號表示式是從左往右進行計算
#define call(f, p) (printf("call function %s\n", #f), f(p))
int square(int n)
int f1(int x)
int main()
2.##運算子int square(int n)
int f1(int x)
int main()
作用:在預編譯期粘連兩個符號
作用域:只能在巨集定義中使用
示例:
#define name(n) name##n
//對於結構體的定義且重新命名以簡化使用
#if 0
typedef
struct test
test;
//typedef test test;
#endif
//用巨集定義來執行上述操作,可以簡化操作且更普遍的適用
#define struct(type) typedef struct test##type type;\
struct test##type
struct(student)
;int main()
typedef
struct teststudent student;struct teststudent
;//可以在任何時候對結構體進行重新命名,只要結構體被定義完成
int main()
C語言 運算子與 運算子
我們平時使用帶參巨集時,字串中的巨集引數是沒有被替換的。例如 輸出結果為 然而,我們期望輸出的結果是 5 20 2513 14 27 這該怎麼做呢?其實,c語言允許在字串中包含巨集引數。在類函式巨集 帶參巨集 中,號作為乙個預處理運算子,可以把記號轉換成字串。例如,如果a是乙個巨集形參,那麼 a就是...
C語言算術運算子與位運算子
1.算術操作符 前兩個不用多說,即是乘號,是求餘 取模 運算,注意 兩側運算元需均為整數 若除數與被除數符號不同,則結果符號與被除數保持一致。如 14 3 2 14 3 2 是求商運算,注意 若 的除數與被除數均為整數將執行舍位 即捨去小數中任何部分 如14 3 4 若除數與被除數符號不同,則結果符...
C語言與C 中點運算子與箭頭運算子的區別
在c 中i如果是物件,就可以通過 來呼叫i中的成員變數。如果i是指標的話,就不能通過 來呼叫,而只能使用 來呼叫。在c語言中不存在物件的概念。這種情況的出現是因為使用了結構,例如 struct candybar 在程式中 candybar snack 我們就可以用snack.weight來取得結構中...