色yeye在线视频观看_亚洲人亚洲精品成人网站_一级毛片免费播放_91精品一区二区中文字幕_一区二区三区日本视频_成人性生交大免费看

當前位置:首頁 > 嵌入式培訓 > 嵌入式學習 > 講師博文 > Static、extern關鍵字的用法

Static、extern關鍵字的用法 時間:2019-05-30      來源:華清遠見

c語言中,關鍵之比較多,其中static和extern兩個關鍵字使用較多,使用靈活,本文就兩個關鍵字在使用的進行總結,不足之處,請不吝指正。

在程序中使用static一般修飾變量,函數。

1. 修飾局部變量

普通局部變量是在函數內部定義的變量(不加static修飾符)。編譯器一般不對普通局部變量進行初始化,也就是說它的值在初始時是不確定的,除非對其顯式賦值。

普通局部變量存儲于進程棧空間,使用完畢會立即釋放。

靜態局部變量使用static修飾符定義,即使在聲明時未賦初值,編譯器也會把它初始化為0。且靜態局部變量存儲于進程的全局數據區,即使函數返回,它的值也會保持不變。

變量在全局數據區分配內存空間;編譯器自動對其初始化 

其作用域為局部作用域,當定義它的函數結束時,其作用域隨之結束

2. 修飾全局變量

全局變量定義在函數體外部,在全局數據區分配存儲空間,且編譯器會自動對其初始化。

普通全局變量對整個工程可見,其他文件可以使用extern外部聲明后直接使用。也就是說其他文件不能再定義一個與其相同名字的變量了(否則編譯器會認為它們是同一個變量)。

靜態全局變量僅對當前文件可見,其他文件不可訪問,其他文件可以定義與其同名的變量,兩者互不影響。

在定義不需要與其他文件共享的全局變量時,加上static關鍵字能夠有效地降低程序模塊之間的耦合,避免不同文件同名變量的沖突,且不會誤使用。

3.修飾函數

函數的使用方式與全局變量類似,在函數的返回類型前加上static,就是靜態函數。其特性如下:

靜態函數只能在聲明它的文件中可見,其他文件不能引用該函數

不同的文件可以使用相同名字的靜態函數,互不影響

非靜態函數可以在另一個文件中直接引用,甚至不必使用extern聲明

Extern關鍵字:

1、函數的聲明extern關鍵詞是可有可無的,因為函數本身不加修飾的話就是extern。但是引用的時候一樣需要聲明的。

2、全局變量在外部使用聲明時,extern關鍵字是必須的,如果變量沒有extern修飾且沒有顯式的初始化,同樣成為變量的定義,因此此時必須加extern,而編譯器在此標記存儲空間在執行時加載內并初始化為0。而局部變量的聲明不能有extern的修飾,且局部變量在運行時才在堆棧部分分配內存。

3、全局變量或函數本質上講沒有區別,函數名是指向函數二進制塊開頭處的指針。而全局變量是在函數外部聲明的變量。函數名也在函數外,因此函數也是全局的

上一篇:Object中有哪些公共方法及作用

下一篇:yum軟件管理器

熱點文章推薦
華清學員就業榜單
高薪學員經驗分享
熱點新聞推薦
前臺專線:010-82525158 企業培訓洽談專線:010-82525379 院校合作洽談專線:010-82525379 Copyright © 2004-2022 北京華清遠見科技集團有限公司 版權所有 ,京ICP備16055225號-5京公海網安備11010802025203號

回到頂部

主站蜘蛛池模板: 岛国精品一区免费视频在线观看 | 免费观看又色又爽又湿的软件 | 边啃奶边躁狠狠躁a片动图 综合久久一区二区 | 激情偷乱人成视频在线观看 | 国产麻豆精品95视频 | 91在线综合 | 国产午夜无码片在线观看网站 | 久久影院综合精品 | 中文字幕二区人妻熟女三区 | 成熟YIN荡美妞A片视频麻豆 | 天堂在线www天堂在线 | 亚洲va天堂va欧美ⅴ | 国産精品久久久久久久 | 久久久亚洲精品动漫无码 | 婷婷五月六月激情综合色中文字幕 | 国产chinese男男GAYGAY视频网站 | 亚洲免费黄色网址 | 四虎成人免费视频在线播放 | 野花日本大全免费观看2019 | 无码帝国www无码专区色综合 | 国产av福利第一精品 | 国产精品成人AAAA网站女吊丝 | 国产一性一交一伦一A片 | 日韩一区二区三区射精 | 免费一区二区三区 | 中文字幕观看视频 | 性一乱一搞一交一伦一性 | 国产精品久久久影视青草 | 无码精品日韩专区 | 98视频精品全部国产 | 放荡的美妇在线播放 | 国产99精品| 18禁网站在线永久免费观看 | 免费1级a做爰片在线观看 | www麻豆 | 亚洲av久久无码精品九九 | 色中色在线播放 | 美女MM131爽爽爽免费图片 | freexxxx性女hd性中国 | 欧美丰满熟妇XXXX性多毛 | 国产又大又硬又粗 |