C語言中 和 的作用

2021-09-24 03:26:46 字數 631 閱讀 3939

一般在函式的開頭都會有空指標檢測部分,這部分一般是巨集函式來實現的,最近客戶跟我抱怨說空指標都是同乙個列印,根本不知道哪個是空指標,於是我想起《c和指標》有這部分的介紹,複習了一番,我自己修改後的巨集函式如下:

root@ubuntu:/lianxi/lianxi_oj/macro# ./a.out

null pointer: p is found!

root@ubuntu:/lianxi/lianxi_oj/macro#

1 #include 2 #define testcheckpointer(ptr) do \

6 } while(0)

7 8 int main(int argc, char* ar**)

9

1.#define巨集替換《c和指標》p282

*在呼叫巨集時,首先對引數進行檢查,看看是否包含了任何由#define定義的符號,如果是,它們首先被替換

*替換文字隨後被插入到程式中原來文字的位置,對於巨集,引數名被它們的值所替代

*最後再對結果文字進行掃瞄,看看它是否包含了任何由#define定義的符號,如果是,重複上述過程

2."#"與"##"的作用

#:使用預處理器把巨集引數轉換為字串,#argument被預

C語言中 和

在c語言中,每個變數都是乙個記憶體位置,並且每個記憶體位置都定義了其位址,可以使用 運算子 進行訪問,該位址表示記憶體中的位址。a指標是乙個變數,其值是另乙個變數的位址,即儲存位置的直接位址。像任何變數或常量一樣,你必須在使用指標儲存任何變數位址之前宣告乙個指標。int ip pointer to ...

C語言中 和 用法

一 基本的用法 1 引數名以 作為字首則結果將被擴充套件為由實際引數的帶引號的字串。如 12 3456 78 define dprint expr printf expr d n expr intmain 上面的例子會列印出 a b 2 2 預處理器運算子 為巨集提供了一種連線實際引數的手段。如果替...

c語言中「 」和「 」區別

乙個豎槓 表示運算的或 二個豎槓 表示邏輯的或 c語言的位運算 取反,0取反是1,1取反是0 是左移,比如1 右移,類似左移,數值大小除以2的n次方 按位與,1與任意數等於任意數本身,0與任意數等於0,即1 x x,0 x 0 按位或,x y中只要有乙個1則結果為1 按位異或,x y相等則為0,不等...