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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3238|回復: 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();                                                                       
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲黄色网址 | 久久精品免费看 | 在线观看欧美日韩视频 | 久久久久久精 | 日韩久久网 | 日本不卡免费 | 欧美激情综合 | 91精品在线播放 | 天天干天天操天天插 | 欧美日韩一区二区在线 | 国产三级精品视频 | 日本在线中文 | 欧美精品在线视频 | 欧美精品一区二区在线观看 | 国产一区福利 | 三级av在线 | 99精品视频在线 | 黄色福利| 亚洲欧美日本在线 | 亚洲欧美综合另类 | 国产91清纯白嫩初高中在线观看 | 欧美日韩精品久久 | 四虎三级 | 狠狠涩| 国产视频黄色 | 天天看天天干 | 亚洲精品久久久久久久久久久 | 日韩欧美不卡 | 成人在线免费视频观看 | 亚洲欧美日本在线 | 香蕉视频一直看一直爽 | 你懂的在线网站 | 国产精品自拍小视频 | 中文字幕三级 | 中文字幕理伦片免费看 | 国产伦精品一区二区三区四区免费 | 国产精品成人一区二区网站软件 | 精品久久久久久久久久久 | 欧美在线视频一区二区 | 国产精品国产精品国产专区不卡 | 三级视频在线 |