Arduino中使用函數(shù)可以將程序整合成代碼段的形式來執(zhí)行。什么情況下需要使用函數(shù)呢?當(dāng)在程序中需要多次執(zhí)行相同的操作時(shí),這些相同的操作就可以整合成函數(shù)。使用函數(shù)的優(yōu)點(diǎn)如下:
- 函數(shù)能幫助程序員更好的組織代碼,也有助于提升程序可讀性。
- 函數(shù)將一系列代碼統(tǒng)一到一起,更利于調(diào)試。
- 需要更改代碼時(shí),函數(shù)可以減少因修改代碼而導(dǎo)致程序出錯(cuò)的機(jī)會(huì)。
- 函數(shù)可以多次重復(fù)利用,使代碼更緊湊更簡(jiǎn)潔。
定義函數(shù)最常用的語(yǔ)法
Arduino程序中需要兩個(gè)函數(shù),即setup()和loop()。當(dāng)創(chuàng)建其它函數(shù)時(shí),必須在這兩個(gè)函數(shù)的括號(hào)之外進(jìn)行創(chuàng)建。定義函數(shù)最常用的語(yǔ)法如下:

函數(shù)包含了函數(shù)頭和函數(shù)塊,函數(shù)頭又由類型、名稱、參數(shù)聲明組成;函數(shù)塊包含聲明和語(yǔ)句。
函數(shù)聲明
在Arduino中,我們可以用兩種不同方式來聲明函數(shù),第一種方式把要函數(shù)頭和函數(shù)體寫到loop()函數(shù)之前,示例如下:
int sum_func (int x, int y) // 函數(shù)聲明 { int z = 0; z = x+y ; return z; // 返回值 } void setup () { 語(yǔ)句 // 語(yǔ)句塊 } Void loop () { int result = 0 ; result = Sum_func (5,6) ; // 函數(shù)調(diào)用 }
在這里我們將sum_func()函數(shù)寫到了loop()函數(shù)之前,參數(shù)聲明中聲明x和y為整型,函數(shù)體{}中聲明了 sum_func() 函數(shù)的執(zhí)行方法。在loop()函數(shù)中進(jìn)行函數(shù)調(diào)用時(shí),對(duì)x和y的進(jìn)行賦值。采用這種方法時(shí),參數(shù)聲明中必須要寫參數(shù)名稱,即x和y。
第二種方式是將函數(shù)原型寫到loop()函數(shù)之前,參數(shù)聲明中不需要寫參數(shù)名稱,不寫函數(shù)體,并以“;”結(jié)束。然后在loop()函數(shù)內(nèi)對(duì)函數(shù)進(jìn)行調(diào)用,并定義參數(shù)值,最后在loop()函數(shù)后再寫出包含參數(shù)名稱的函數(shù)頭和函數(shù)體。下面的例子演示了使用第二種方法聲明函數(shù):
int sum_func (int , int ) ; // 函數(shù)原型 void setup () { 語(yǔ)句 // 語(yǔ)句塊 } Void loop () { int result = 0 ; result = Sum_func (5,6) ; // 函數(shù)調(diào)用 } int sum_func (int x, int y) // 函數(shù)定義 { int z = 0; z = x+y ; return z; // 返回值 }