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

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

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

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

      2. 新聞中心

        EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 單片機(jī)C語(yǔ)言中 static 用法小結(jié)

        單片機(jī)C語(yǔ)言中 static 用法小結(jié)

        作者: 時(shí)間:2016-11-18 來(lái)源:網(wǎng)絡(luò) 收藏
        一、c程序存儲(chǔ)空間布局

        C程序一般由下列部分組成:

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

        1)正文段——CPU執(zhí)行的機(jī)器指令部分;少量的液晶字庫(kù)等也放在這里;只讀,防止程序由于意外事故而修改自身指令;
        2)初始化數(shù)據(jù)段(數(shù)據(jù)段)——在程序中所有賦了初值的全局變量,存放在這里。
        3)非初始化數(shù)據(jù)段(bss段)——在程序中沒(méi)有初始化的全局變量;內(nèi)核將此段初始化為0。
        4)棧——增長(zhǎng)方向:自頂向下增長(zhǎng);自動(dòng)變量以及每次函數(shù)調(diào)用時(shí)所需要保存的信息(返回地址;環(huán)境信息)。
        5)堆——動(dòng)態(tài)存儲(chǔ)分。

        |-----------|
        | |
        |-----------|
        | 棧 |
        |-----------|
        | | |
        | |/ |
        | |
        | /| |
        | | |
        |-----------|
        | 堆 |
        |-----------|
        | 未初始化 |
        |-----------|
        | 初始化 |
        |-----------|
        | 正文段 |
        |-----------|

        二、static的作用
        1、內(nèi)部標(biāo)識(shí),也就是說(shuō)無(wú)論是定義函數(shù)還是變量,只要有了static,就不能被外部調(diào)用;
        舉例說(shuō)明:static char i = 0;
        static int putchar(int c );
        {
        static char a = 0;
        ....a++;.....

        }
        extern sprintf(const char *format , ... );
        {
        putchar(...);
        }
        假設(shè)以上變量及函數(shù)都在uart.c的文件中main()函數(shù)是在main.c中,那么,在main中只能調(diào)用sprintf,而不能直接調(diào)用putchar,也不能直接用變量 i。

        2、靜態(tài)變量,我認(rèn)為這個(gè)是針對(duì)于static定義的局部變量而言的,除了只能在定義它的函數(shù)內(nèi)局部使用外其他的和全局變量是一樣的(只在第一次調(diào)用時(shí)初始化,用完后空間不會(huì)釋放,已存值不會(huì)改變)。比方說(shuō)以上的a在第一次調(diào)用時(shí)被初始化為0.然后自加為1,那么第二次調(diào)用時(shí)(無(wú)論誰(shuí)調(diào)用)a的初始值就是1,運(yùn)行完就是2。



        評(píng)論


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

        關(guān)閉