(1)#ifndef和 #define組合
一般用於標頭檔案中,防止該標頭檔案被重複引用.
其用法一般為:
#ifndef 《標識》
#define 《標識》
......... // include or define sth.
#else
......
#endif
《標識》在理論上來說可以是自由命名的,但每個標頭檔案的這個「標識」都應該是唯一的。
標識的命名規則一般是頭檔名全大寫,前後加下劃線,並把檔名中的「.」也變成下劃線,如:stdio.h對應的就是:
#ifndef _stdio_h_
#define _stdio_h_
......... // include or define sth.
#endif
(2)#if 0
中間可以隨見加入各種文字
#endif
(3)__file__:檔名常量:
__date__:日期常量
__time__:時間常量
__line__:所在行常量
eof:錯誤常量
clocks_per_sec:cpu在一秒內的計時單元數
exit_sucess(總是定義w為0),xit_failure
size_t
assert()巨集
auto_ptr類模版
判斷一段程式是由c 編譯還是由c++編譯:
#ifdef __cplusplus
cout<<"c++"<#else
cout<<"c"<#endif
關於巨集定義的用法
如何解釋下面這段 define led1 a if a gpio setbits gpioc,gpio pin 3 else gpio resetbits gpioc,gpio pin 3 首先,這個是用巨集定義的方式包裝成類似函式那樣,但不是函式呼叫 你在 中呼叫 led1 1 實際上通過巨集定義...
C C 巨集定義的常見使用
在我們平時的開發工程中,會經常使用到巨集,它功能強大,用的好會帶來意想不到的妙用。今天來整理下一些常見的用法,方便回顧。將其後面的巨集引數進行字串化操作 stringfication 注意 a 忽略傳入引數名前面和後面的空格。b 當傳入引數名間存在空格時,編譯器將會自動連線各個子字串,用每個子字串之...
關於巨集定義的計算問題
巨集定義分廠好用,我也經常用但是呢,巨集定義也有一些缺點 比如呢,這裡給出乙個簡單的巨集定義 假如在程式中用呢,就是 uint32 t data a 巨集定義就是簡單的替換 所以呢就變成了 uint32 t data 1 2 3 4 5 其實最終呢咱們想要的是 data 25 但是假如編譯器不幹任何...