“Define”的版本間的差異

來自ALSROBOT WiKi
跳轉(zhuǎn)至: 導(dǎo)航、 搜索
(以“<nowiki>#define</nowiki> 宏定義<br> 宏定義是一個(gè)有用的C組件,它允許程序員在程序編譯前給常量取一個(gè)名字。在arduino中定義的常...”為內(nèi)容創(chuàng)建頁面)
 

2014年9月12日 (五) 13:25的最后版本

#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