http://m.gharee.com/wiki/index.php?action=history&feed=atom&title=Static_%28%E9%9D%99%E6%80%81%E5%8F%98%E9%87%8F%29 123,123,123 2025-07-04T10:11:43Z 本wiki的該頁面的版本歷史 MediaWiki 1.21.2 http://m.gharee.com/wiki/index.php?title=Static_(%E9%9D%99%E6%80%81%E5%8F%98%E9%87%8F)&diff=78&oldid=prev Admin:以“static關鍵字用于創(chuàng)建只對某一函數(shù)可見的變量。然而,和局部變量不同的是,局部變量在每次調(diào)用函數(shù)時都會被創(chuàng)建和銷毀,...”為內(nèi)容創(chuàng)建頁面 2014-09-12T06:01:39Z <p>以“static關鍵字用于創(chuàng)建只對某一函數(shù)可見的變量。然而,和局部變量不同的是,局部變量在每次調(diào)用函數(shù)時都會被創(chuàng)建和銷毀,...”為內(nèi)容創(chuàng)建頁面</p> <p><b>新頁面</b></p><div>static關鍵字用于創(chuàng)建只對某一函數(shù)可見的變量。然而,和局部變量不同的是,局部變量在每次調(diào)用函數(shù)時都會被創(chuàng)建和銷毀,靜態(tài)變量在函數(shù)調(diào)用后仍然保持著原來的數(shù)據(jù)。&lt;br&gt;<br /> <br /> 靜態(tài)變量只會在函數(shù)第一次調(diào)用的時候被創(chuàng)建和初始化。&lt;br&gt;<br /> 例子&lt;br&gt;<br /> &lt;pre style=&quot;color:green&quot;&gt;<br /> /* RandomWalk<br /> * Paul Badger 2007<br /> * RandomWalk函數(shù)在兩個終點間隨機的上下移動<br /> * 在一個循環(huán)中最大的移動由參數(shù)“stepsize”決定<br /> *一個靜態(tài)變量向上和向下移動一個隨機量<br /> *這種技術(shù)也被叫做“粉紅噪聲”或“醉步”<br /> */<br /> <br /> #define randomWalkLowRange -20<br /> #define randomWalkHighRange 20<br /> <br /> int stepsize;<br /> <br /> INT thisTime;<br /> int total;<br /> <br /> void setup()<br /> {<br /> Serial.begin(9600);<br /> }<br /> <br /> void loop()<br /> { // 測試randomWalk 函數(shù)<br /> stepsize = 5;<br /> thisTime = randomWalk(stepsize);<br /> serial.println(thisTime);<br /> delay(10);<br /> }<br /> <br /> int randomWalk(int moveSize){<br /> static int place; // 在randomwalk中存儲變量<br /> // 聲明為靜態(tài)因此它在函數(shù)調(diào)用之間能保持數(shù)據(jù),但其他函數(shù)無法改變它的值<br /> <br /> place = place + (random(-moveSize, moveSize + 1));<br /> <br /> if (place &lt; randomWalkLowRange){ //檢查上下限<br /> place = place + (randomWalkLowRange - place); // 將數(shù)字變?yōu)檎较?lt;br /> }<br /> else if(place &gt; randomWalkHighRange){<br /> place = place - (place - randomWalkHighRange); // 將數(shù)字變?yōu)樨摲较?lt;br /> }<br /> <br /> return place;<br /> }<br /> &lt;/pre&gt;</div> Admin