變量作用域
來(lái)自ALSROBOT WiKi
變量的作用域
在Arduino使用的C編程語(yǔ)言的變量,有一個(gè)名為 作用域(scope) 的屬性 。這一點(diǎn)與類(lèi)似BASIC的語(yǔ)言形成了對(duì)比,在BASIC語(yǔ)言中所有變量都是 全局(global) 變量。
在一個(gè)程序內(nèi)的全局變量是可以被所有函數(shù)所調(diào)用的。局部變量只在聲明它們的函數(shù)內(nèi)可見(jiàn)。在Arduino的環(huán)境中,任何在函數(shù)(例如,setup(),loop()等)外聲明的變量,都是全局變量。
當(dāng)程序變得更大更復(fù)雜時(shí),局部變量是一個(gè)有效確定每個(gè)函數(shù)只能訪問(wèn)其自己變量的途徑。這可以防止,當(dāng)一個(gè)函數(shù)無(wú)意中修改另一個(gè)函數(shù)使用的變量的程序錯(cuò)誤。
有時(shí)在一個(gè)for循環(huán)內(nèi)聲明并初始化一個(gè)變量也是很方便的選擇。這將創(chuàng)建一個(gè)只能從for循環(huán)的括號(hào)內(nèi)訪問(wèn)的變量。
例子:
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)括號(hào)內(nèi)訪問(wèn) } }