C語言 與 運算子的使用

2021-08-01 03:38:02 字數 925 閱讀 4583

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()

int square(int n)

int f1(int x)

int main()

2.##運算子

作用:在預編譯期粘連兩個符號

作用域:只能在巨集定義中使用

示例:

#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來取得結構中...