说明
Arduino的C编程语言变量有一个属性叫作用域(scope) 。这一属性在BASIC一类的编程语言中是不存在的。在BASIC语言中所有变量都是 全局(global) 变量。
一个程序内的全局变量是可以被所有函数所调用的。而局部变量只在声明它们的函数内可见。在Arduino的环境中,任何在函数外声明的变量,都是全局变量。例如在setup(),loop()等函数外声明的函数都是全局变量。
当程序变得更大更复杂时,声明局部变量是一种更加有效的变量声明方式。因为局部变量只有在声明它的函数中有效,而其它函数是不能调用它的。这样做可以防止因为粗心而错误的改变变量数值问题。
一般在loop()函数中声明局部变量是一种有效的编程方法。这么做可以产生一个只有在loop()函数中有效的变量,而其他函数无法对该变量进行操作。
示例程序
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
int gPWMval; // 变量gPWMval是全局变量,所有函数可调用此变量 void setup() { // ... } void loop() { int i; // "i" 是loop()函数局部变量,只在loop()函数中有效。 float f; // "f" 是loop()函数局部变量,只在loop()函数中有效。 // ... for (int j = 0; j <100; j++){ // "j" 是loop()函数局部变量,只在loop()函数中有效。 } } |