Define

來自ALSROBOT WiKi
2014年9月12日 (五) 13:25Admin討論 | 貢獻(xiàn)的版本

(差異) ←上一版本 | 最后版本 (差異) | 下一版本→ (差異)
跳轉(zhuǎn)至: 導(dǎo)航、 搜索

#define 宏定義
宏定義是一個(gè)有用的C組件,它允許程序員在程序編譯前給常量取一個(gè)名字。在arduino中定義的常量不會(huì)在芯片中占用任何程序空間。編譯器在編譯時(shí)會(huì)將這些常量引用替換為定義的值。

這雖然可能有些有害的副作用,舉例來說,一個(gè)已被定義的常量名被包含在一些其它的常量或變量名中。那樣的話該文本將被替換成被定義的數(shù)字(或文本)。


通常,用const關(guān)鍵字定義常量是更受歡迎的且用來代替#define會(huì)很有用。


Arduino宏定義與C宏定義有同樣的語法


語法

#define constantName value 

注意‘#’是必須的

示例:

#define ledPin 3
// 編譯器在編譯時(shí)會(huì)將任何提及l(fā)edPin的地方替換成數(shù)值3。

提示
#define語句的后面分號(hào)。如果你加了一個(gè),編譯器將會(huì)在進(jìn)一步的頁面引發(fā)奇怪的錯(cuò)誤。

#define ledPin 3;    // this is an error 

類似地,包含一個(gè)等號(hào)通常也會(huì)在進(jìn)一步的頁面引發(fā)奇怪的編譯錯(cuò)誤。

#define ledPin  = 3  // this is also an error