重讀C庫之巨集定義

2022-01-20 05:18:51 字數 1021 閱讀 3367

1.如何編寫標頭檔案.h?

1

23 #ifndef __func1_h //

__func1_h

//可小寫可大寫45

#define __func1_h //

__func1_h67

...8

9#endif

2.如何在c++檔案使用c庫?

#ifdef __cpluscplus

extern

「c」

#endif

更複雜版本:

3.#undef作用?

在後面取消以前定義的巨集定義;一般使用#undef取消乙個巨集定義後可以再次對其進行新的定義。

4.遮蔽不同晶元資料型別位數差異,如int是16還是32位?統一使用int16_t/int32_t來定義變數。

5.volatile的使用:阻止編譯器過優化,被定義的變數每次必須從記憶體中重新讀取資料,而不是從快取暫存器中讀取。

有乙個面試題這樣問: 乙個引數既可以是const還可以是volatile嗎?

a:當然可以了,看上面高亮的**,唯讀的狀態暫存器加上const表示不能被程式修改。

多說幾句,volatile關鍵字的應用場景:

1)並行裝置的硬體暫存器;2)乙個中斷服務子程式中會訪問到的非自動變數(non-automatic variables);3)多執行緒應用中被幾個任務共享的變數。

C之巨集定義

file function line date time define max x,y x y y x 兩數取最大數 define min x,y x y x y 兩數取最小數 define ticks subtract absolute cur,prev cur prev cur prev 0xf...

C之帶參巨集定義

1.帶參巨集定義跟前面文章有所區別,不是簡單的數值或者字串替換,是要進行引數替換。2.本人理解,帶參巨集是很方便的,一些固定輸入和輸出咱們可以選擇帶參巨集,類似工程中多出要計算兩數相乘,這種情況我們就可以使用帶參巨集。define s a,b a b qdebug 2,3 6 define pi 3...

C 巨集定義 巨集定義求面積

學過c語言的讀者,對巨集定義應該不陌生,同樣在c 中,也可以用巨集定義命令將乙個指定的識別符號來代表乙個字串,巨集定義的作用一般是用乙個短的名字代表乙個長的字串。一般形式為 define 識別符號 字串定義pi的符號常量 define pi 3.14在c 中還可以用 define命令定義帶引數的巨集...