日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

C全局变量的用法

發布時間:2023/12/20 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C全局变量的用法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

extern的作用?

1.當extern與C一起連用時,extern "C" void fun(int a);則告訴編譯器編譯時按照C的規則去編譯函數名,若按照C++的規則編譯很可能名字改變了,因為C++支持函數的ch重載。

2.當extern不與C一起修飾變量或函數時,如在頭文件定義 extern char ?g_Char;此時就是聲明函數或全局變量的作用范圍,extern類型聲明和定義是要分開的,在頭文件進行聲明,在本模塊中進行定義,若有其他模塊使用g_Char,只需要引用頭文件就可以,它會在連接時從定義的模塊的目標代碼中找到引用的變量。

3.有人習慣將全局變量的聲明和定義放在一起,這樣放在忘記了定義,extern char g_Char = 'g';這個時候相當于沒有extern,然后把定義模塊的定義去掉,當編譯時若兩個以上的地方都引用了定義全局變量的頭文件則連接器在連接時發現li兩個g_Char而出錯誤,若果非要在頭文件去定義全局變量的話,那么就在其他模塊引用時將#include頭文件去掉,在其他模塊添加extern char g_Char,本模塊不用extern去修,這個時候編譯器就知道g_Char時引自外部的編譯模塊了,不會在本模塊再重復定義一個出來了,這樣會有個弊端就是其他模塊每每使用一個全局變量或函數都要用extern做修飾,頭文件的作用就是給外部提供接口使用,所以只在頭文件做聲明就可以了。

4.用static修飾全局變量:extern 和 static不能同時修飾一個變量,其次static 修飾全局變量時,同時也被定義了,static修飾全局變量的作用域智能是本身編譯單元,也就是說它的全局只對本編譯單元有效。所以一般定義static全局變量時,都把它放在源文件中而不是頭文件,這樣就不會給其他模塊造成不必要的信息污染。

5.const :const修飾的全局常量具有跟static相同的特性,即只能作用于本編譯模塊中,但const 可以與extern連用來聲明該常量可用于作用于其他編譯模塊中。

本文引自https://www.cnblogs.com/wujing-hubei/p/5944672.html

?

總結:全局變量聲明在.h文件,定義在本模塊.c文件,其他模塊則引入.h文件就可以直接引用。

總結

以上是生活随笔為你收集整理的C全局变量的用法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。