中文字幕 另类精品,亚洲欧美一区二区蜜桃,日本在线精品视频免费,孩交精品乱子片免费

<sup id="3hn2b"></sup>

    1. <sub id="3hn2b"><ol id="3hn2b"></ol></sub><legend id="3hn2b"></legend>

      1. <xmp id="3hn2b"></xmp>

      2. 新聞中心

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

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

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

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

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

        簡單來說 如果 采集的數(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ù)的更新。感覺巧妙之級(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;
        }
        }

        一開始以為 else 后邊的不會(huì)執(zhí)行,后來我錯(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語言stati

        評(píng)論


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

        關(guān)閉