變量作用域

來自ALSROBOT WiKi
2014年9月12日 (五) 14:01Admin討論 | 貢獻的版本

(差異) ←上一版本 | 最后版本 (差異) | 下一版本→ (差異)
跳轉(zhuǎn)至: 導航、 搜索

變量的作用域

在Arduino使用的C編程語言的變量,有一個名為 作用域(scope) 的屬性 。這一點與類似BASIC的語言形成了對比,在BASIC語言中所有變量都是 全局(global) 變量。

在一個程序內(nèi)的全局變量是可以被所有函數(shù)所調(diào)用的。局部變量只在聲明它們的函數(shù)內(nèi)可見。在Arduino的環(huán)境中,任何在函數(shù)(例如,setup(),loop()等)外聲明的變量,都是全局變量。

當程序變得更大更復雜時,局部變量是一個有效確定每個函數(shù)只能訪問其自己變量的途徑。這可以防止,當一個函數(shù)無意中修改另一個函數(shù)使用的變量的程序錯誤。

有時在一個for循環(huán)內(nèi)聲明并初始化一個變量也是很方便的選擇。這將創(chuàng)建一個只能從for循環(huán)的括號內(nèi)訪問的變量。
例子:

int gPWMval;  // 任何函數(shù)都可以調(diào)用此變量
 
void setup()
{
  // ...
}
 
void loop()
{
  int i;    // "i" 只在 "loop" 函數(shù)內(nèi)可用
  float f;  // "f" 只在 "loop" 函數(shù)內(nèi)可用
  // ...
 
  for (int j = 0; j <100; j++){
    //變量j只能在循環(huán)括號內(nèi)訪問
  }
}