Arduino 中的子程式
本教程將討論通過宣告函式並在 Arduino 的主程式碼中呼叫它們來處理子程式。
Arduino 中的子程式
在 Arduino 中,我們可以宣告函式並在主程式碼中呼叫它們來處理子程式。程式碼是逐行執行的,如果我們在一行中呼叫一個函式,Arduino 將在該行停止並移動到該函式的宣告處。
它將執行函式中存在的程式碼,然後移動到主程式碼中的下一行。
例子:
void setup() {}
void loop() {
// code
Sub_1();
// code
}
void Sub_1() {
// code
}
當上述程式碼中的 Sub_1()
函式行執行時,編譯器將移動到 Sub_1()
函式宣告並執行其程式碼。
它將返回主程式碼並移至下一行。我們可以宣告有或沒有返回型別的函式。
在上面的程式碼中,我們使用了 void
關鍵字,這意味著函式不會返回任何內容,但我們可以更改函式中全域性變數的值。
在開始時定義且未被任何函式包圍的變數稱為全域性變數。
讓我們定義一個全域性變數並使用子程式更改其值。請參閱下面的程式碼。
int a = 5;
void setup() {}
void loop() {
// code
Sub_1();
// code
}
void Sub_1() { a = 10; }
在上面的程式碼中,全域性變數 a
的值將在子程式 Sub_1()
執行後改變。我們可以在子例程之前和之後列印變數的值來檢查它是否工作。
我們還可以定義具有返回型別的函式,當它們被呼叫時將返回一個值。
要定義具有資料型別的函式,我們必須首先在函式內部寫入資料型別、函式名稱和要傳遞的引數。
例如,讓我們定義一個函式來查詢兩個整數的和並將結果作為整數返回。
void setup() {}
void loop() {
int a = 5;
int b = 5;
int c;
c = Sub_1(a, b);
// code
}
int Sub_1(int x, int y) {
int result = x + y;
return result;
}
在上面的程式碼中,當使用特定輸入呼叫函式 Sub_1()
時,它將返回兩個輸入的總和。
請注意,我們在 Sub_1()
函式中傳遞的變數與我們在 Sub_1()
宣告中使用的變數不同。不過,我們可以使用相同的變數,因為它們不是全域性的。
函式內部定義的變數只能在該函式內部使用和更改。我們可以使用 return
關鍵字來返回一個值或一個變數。
我們還可以使用其他資料型別來定義字串、char 和 long 等函式。如果我們不想返回任何值或變數,我們可以使用 void
關鍵字來定義函式。
當我們想要編寫乾淨的程式碼或在程式碼中多次重複任務時,子例程很有幫助。
如果我們想在一個程式碼中多次執行一項任務,我們必須多次編寫程式碼,但是我們可以建立一個函式並將程式碼放入其中,並在主程式碼中隨時呼叫它。
它將減少時間和空間,並使程式碼簡潔明瞭。