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
关键字来定义函数。
当我们想要编写干净的代码或在代码中多次重复任务时,子例程很有帮助。
如果我们想在一个代码中多次执行一项任务,我们必须多次编写代码,但是我们可以创建一个函数并将代码放入其中,并在主代码中随时调用它。
它将减少时间和空间,并使代码简洁明了。