“Define”的版本間的差異
來自ALSROBOT WiKi
(以“<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