關於巨集定義,常見巨集及其對應的標頭檔案

2021-08-30 09:25:27 字數 843 閱讀 5549

(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 但是假如編譯器不幹任何...