久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3214|回復: 0
打印 上一主題 下一主題
收起左側

C語言外部變量和靜態變量的使用

[復制鏈接]
跳轉到指定樓層
樓主
ID:105323 發表于 2016-2-13 01:19 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
C語言的外部變量的定義和引用對初學者來說,是個難點.

對外部變量的說明和定義不是一回事.對外部變量的說明,只是聲明該變量是在外部定義過的一個全局變量..在這里引用.而對外部變量的定義,則是要分配存儲單元.一個全局變量只能定義一次,卻可以多次引用.

用extern聲明外部變量,目的是可以在其它的文件中調用.具體使用見下面的例子:

            file1.c                                      file2.c

       inti,j;//定義全局變量                       extern  int i,j;//外部變量說明

       charc;                                       extern charc;

      void func()                                    voidfunc1()

    {                                               {

       }                                              }

在file2.c中對外部變量i,j,c進行了說明,就可以直接調用file1.c中定義的全局變量了

靜態變量static的使用

有時在中斷程序中定義了變量,不希望每次進入中斷程序,變量就被賦初值.這時就要使用static變量.靜態局部變量在編譯時賦初值,既只賦初值一次.見下例:

  void serial_interrupt()interrupt 4 using 3

{ static uchar i="0";

   i++;

}

上例中,編譯時,i被賦初值0,以后每進入一次中斷,i+1,而不是每次進入中斷,i都被請零,再加1

如果在a.c中要調用在b.c中定義的函數func(),需要在a.c中聲明該函數,表示該函數在別的源文件中定義。函數是可以互相調用的,因此函數都具有外部存儲種類的屬性。原則上調用一個在在本程序模塊文件以外的其他模塊文件所定義的函數,必須用關鍵字extern說明被調用函數是一個外部函數。實際使用中可以省掉extern。即下面兩個函數聲明沒有明顯的區別:

extern int f();和int f();                                                                       
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产视频在线一区二区 | 日韩视频专区 | 一区二区三区福利视频 | 日本a∨视频 | 完全免费av在线 | 国产亚洲精品综合一区 | 东方伊人免费在线观看 | 久久在线看 | 日韩视频区 | 欧美一级在线观看 | 精品国产一区二区三区性色 | 国产高清在线精品一区二区三区 | 国产日韩视频在线 | 久久9999久久 | 99热欧美 | wwwxxx国产| 久久国产麻豆 | www.亚洲 | 亚洲精品一区中文字幕乱码 | 香蕉久久久久久 | 久久久久亚洲国产| 欧美激情 一区 | 在线观看免费观看在线91 | 色婷婷综合网 | 欧美不卡 | 国产精品自产拍 | 美女日皮网站 | www国产成人免费观看视频,深夜成人网 | 亚洲高清视频在线观看 | 91精品国产91久久综合桃花 | 欧美一级免费看 | 99re视频在线观看 | 人人九九 | 羞羞的视频在线观看 | 美女爽到呻吟久久久久 | 亚洲一级淫片 | 久久高清精品 | 黑人巨大精品欧美黑白配亚洲 | 欧美一区成人 | 日本超碰在线 | 欧美伊人久久久久久久久影院 |