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ù)。<br><br />
<br />
靜態(tài)變量只會在函數(shù)第一次調(diào)用的時候被創(chuàng)建和初始化。<br><br />
例子<br><br />
<pre style="color:green"><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 < randomWalkLowRange){ //檢查上下限<br />
place = place + (randomWalkLowRange - place); // 將數(shù)字變?yōu)檎较?lt;br />
}<br />
else if(place > randomWalkHighRange){<br />
place = place - (place - randomWalkHighRange); // 將數(shù)字變?yōu)樨摲较?lt;br />
}<br />
<br />
return place;<br />
}<br />
</pre></div>
Admin