中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C語言中怎么使用static關鍵字

發布時間:2021-07-02 16:26:31 來源:億速云 閱讀:302 作者:Leah 欄目:互聯網科技

C語言中怎么使用static關鍵字,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

C語言的關鍵字static在有三個作用:聲明靜態函數,聲明靜態全局變量,聲明靜態局部變量

聲明靜態函數

    在函數的返回類型前加個static,就是靜態函數了。靜態函數只能在聲明它的文件中使用,其他文件看不到它。而不同的文件可以使用相同名字的靜態函數,互不影響。非靜態函數可以在另一個文件中直接引用,甚至不必使用extern聲明

C語言中怎么使用static關鍵字


聲明靜態全局變量
    全局變量定義在函數體外部,編譯器會自動對其初始化。普通全局變量,對整個Kernel可見;而靜態全局變量僅對當前文件可見,其他文件不可訪問。因此,如果定義的全局變量(或函數)不需要與其他文件共享,建議加上static來降低程序之間的耦合。

聲明靜態局部變量
    局部變量就是函數內部定義的變量,其作用域比全局變量小很多。編譯器一般不對普通局部變量進行初始化,也就是說它的值在初始時是不確定的,除非對其顯式賦值。而使用了static的靜態局部變量,即使在聲明時未賦初值,編譯器也會把它初始化為0。而且靜態局部變量的存儲位置也不同,即使函數返回了,它的值也會保持不變

C語言中怎么使用static關鍵字

再把它們的地址與系統內存布局對比一下


得出以下結論:

  • 1 靜態函數在Shell里不可見,全局函數在Shell里可見

  • 2 不管哪種函數,都存儲于系統的文本段中

  • 3 有初值的全局變量(無論是否靜態變量),以及有初值的靜態局部變量,存儲于系統的數據段中

  • 4 無初值的全局變量(無論是否靜態變量),以及無初值的靜態局部變量,存儲于系統的BSS段中,被初始化為0

  • 5 局部變量(非靜態,無論有無初值),存儲于任務的棧中。如未賦初值,則使用0xeeeeeeee

看完上述內容,你們掌握C語言中怎么使用static關鍵字的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

嵊泗县| 本溪市| 秦安县| 漠河县| 黄骅市| 沧源| 兴宁市| 奈曼旗| 开鲁县| 清水县| 达州市| 四平市| 三穗县| 繁峙县| 石阡县| 游戏| 三门县| 海口市| 手机| 桦川县| 昌图县| 布拖县| 聂拉木县| 多伦县| 内丘县| 寿宁县| 乌拉特前旗| 临高县| 金阳县| 吴江市| 资讯| 西城区| 渭南市| 开封市| 沙河市| 南京市| 绥江县| 谷城县| 大同县| 黎川县| 三原县|