熟女俱乐部五十路二区av,又爽又黄禁片视频1000免费,国产卡一卡二卡三无线乱码新区,中文无码一区二区不卡αv,中文在线中文a

新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 關(guān)于C語(yǔ)言的static 又漲姿勢(shì)了

關(guān)于C語(yǔ)言的static 又漲姿勢(shì)了

作者: 時(shí)間:2016-11-27 來(lái)源:網(wǎng)絡(luò) 收藏
最近學(xué)習(xí)一段代碼,關(guān)于求平均值過(guò)濾的,過(guò)去使用時(shí),一般是這樣算,先一下子讀出10個(gè)值來(lái),求和再除以10,然后返回平均值。

今天學(xué)到了一種新的求平均值法,不用一下子讀出10個(gè)來(lái),而是正常讀,只不過(guò)是以前讀的都會(huì)記錄保存下來(lái),然后通過(guò)移位來(lái)更新這10個(gè)數(shù)據(jù),

本文引用地址:http://www.bjwjmy.cn/article/201611/322291.htm

簡(jiǎn)單來(lái)說(shuō) 如果 采集的數(shù)據(jù)為(2.0,2.1,2.5,2.3,2.5,2.2,2.5,2.6,5.9,2.7),那么下次采集為 2.5,那么就會(huì)將2.0丟掉,2.1為第一位,依次移位實(shí)現(xiàn)數(shù)據(jù)的更新。感覺(jué)巧妙之級(jí)。

這種方法的代碼實(shí)現(xiàn)如下‘

/*******************************************************************************
* Function Name : static int _filter(int m)
* Description :
* Input :
* Output : None
* Return :
* Attention : None
*******************************************************************************/
static int _filter(int m)
{
static int flag_first = 0, _buff[10], sum;
const int _buff_max = 10;
int i;

if(flag_first == 0)
{
flag_first = 1;

for(i = 0, sum = 0; i < _buff_max; i++)
{
_buff[i] = m;
sum += _buff[i];
}
return m;
}
else
{
sum -= _buff[0];
for(i = 0; i < (_buff_max - 1); i++)
{
_buff[i] = _buff[i + 1];
}
_buff[9] = m;
sum += _buff[9];

i = sum / 10.0;
return i;
}
}

一開(kāi)始以為 else 后邊的不會(huì)執(zhí)行,后來(lái)我錯(cuò)了。

static有一個(gè)特點(diǎn)

特點(diǎn): static局部變量的”記憶性”與生存期的”全局性”
所謂”記憶性”是指在兩次函數(shù)調(diào)用時(shí), 在第二次調(diào)用進(jìn)入時(shí), 能保持第一次調(diào)用退出時(shí)的值.
示例程序一
#include

using namespace std;

void staticLocalVar()
{
static int a = 0; // 運(yùn)行期時(shí)初始化一次, 下次再調(diào)用時(shí), 不進(jìn)行初始化工作
cout<<"a="<++a;
}

int main()
{
staticLocalVar(); // 第一次調(diào)用, 輸出a=0
staticLocalVar(); // 第二次調(diào)用, 記憶了第一次退出時(shí)的值, 輸出a=1
return 0;
}




關(guān)鍵詞: C語(yǔ)言stati

評(píng)論


技術(shù)專區(qū)

關(guān)閉