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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

全局变量,extern和static以及命名空间的区别

發(fā)布時間:2023/11/30 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 全局变量,extern和static以及命名空间的区别 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
全局變量,extern和static以及命名空間的區(qū)別 ? ? ? ?全局變量只是在聲明它的文件中有效,假如在另一個文件中聲明定義了一個相同名稱的全局變量,則在后續(xù)使用這兩個變量的時候會產(chǎn)生名字上的沖突,解決的辦法就是將其中一個全局變量的聲明寫在未命名的命名空間中,這樣可以防止在另一個文件中使用同名變量的時候出現(xiàn)編譯上的錯誤。原因是未命名的命名空間的所有成員在其他文件中都是不可見的,因此也就間接的解決了不同文件中相同變量,函數(shù)的重名問題。 ? ? ? ? extern關(guān)鍵字用來聲明變量,或者函數(shù)名以及對象名在其他文件中已經(jīng)定義過,它通常只是起到一個說明的作用,只是告訴編譯器這個變量來自其他文件,編譯器會根據(jù)這個它提供的變量和名字在其他文件中查找。static關(guān)鍵字和未命名空間的作用相同,是文件級別的靜態(tài)變量,也就是說它所定義的變量只能在使用它的文件中使用,而在其他文件中必須顯示的包含它才可以使用(一般是使用#include包含static所在的文件)。static與extern的區(qū)別是:static是內(nèi)部鏈接,extern是外部鏈接,static定義的變量只能在此變量的文件中使用,而extern則將它所聲明的變量鏈接到其他文件,以便于鏈接器查找到此變量的定義部分。 ? ? ? ? 和extern相似的是,未命名的命名空間也是外部鏈接,在聲明未命名空間的時候,系統(tǒng)為每個未命名空間分配了一個名字,這樣就不會與其他文件中相同的名字產(chǎn)生沖突。

轉(zhuǎn)載于:https://www.cnblogs.com/sunfie/p/4394588.html

總結(jié)

以上是生活随笔為你收集整理的全局变量,extern和static以及命名空间的区别的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。