posts - 2,  comments - 0,  trackbacks - 0

          static全局變量與普通的全局變量有什么區別?static局部變量和普通局部變量有什么區別?static函數與普通函數有什么區別?

           

            全局變量(外部變量)的說明之前再冠以static 就構成了靜態的全局變量。全局變量本身就是靜態存儲方式, 靜態全局變量當然也是靜態存儲方式。 這兩者在存儲方式上并無不同。這兩者的區別雖在于非靜態全局變量的作用域是整個源程序, 當一個源程序由多個源文件組成時,非靜態的全局變量在各個源文件中都是有效的。 而靜態全局變量則限制了其作用域, 即只在定義該變量的源文件內有效, 在同一源程序的其它源文件中不能使用它。由于靜態全局變量的作用域局限于一個源文件內,只能為該源文件內的函數公用, 因此可以避免在其它源文件中引起錯誤。

            從以上分析可以看出, 把局部變量改變為靜態變量后是改變了它的存儲方式即改變了它的生存期。把全局變量改變為靜態變量后是改變了它的作用域, 限制了它的使用范圍。

            static函數與普通函數作用域不同。僅在本文件。只在當前源文件中使用的函數應該說明為內部函數(static),內部函數應該在當前源文件中說明和定義。對于可在當前源文件以外使用的函數,應該在一個頭文件中說明,要使用這些函數的源文件要包含這個頭文件

            static全局變量與普通的全局變量有什么區別:static全局變量只初使化一次,防止在其他文件單元中被引用;

            static局部變量和普通局部變量有什么區別:static局部變量只被初始化一次,下一次依據上一次結果值;

            static函數與普通函數有什么區別:static函數在內存中只有一份,普通函數在每個被調用中維持一份拷貝.
          posted on 2009-09-07 23:37 iConnect 閱讀(472) 評論(0)  編輯  收藏 所屬分類: C/C++
          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          常用鏈接

          留言簿(2)

          文章分類(17)

          文章檔案(16)

          收藏夾(17)

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 岳池县| 甘南县| 贡嘎县| 拜城县| 大渡口区| 台南县| 贺兰县| 花垣县| 襄汾县| 江油市| 若羌县| 福州市| 新田县| 新和县| 彰化市| 盐城市| 南安市| 荣昌县| 竹北市| 鄂尔多斯市| 河东区| 磐石市| 博野县| 无为县| 财经| 武山县| 松江区| 巩留县| 稻城县| 珲春市| 屯门区| 天柱县| 怀远县| 武功县| 庄浪县| 满城县| 兴国县| 惠水县| 台江县| 邯郸县| 龙山县|