extern在c语言中是什么意思?

是一个修饰符。

在C语言中,修饰符extern用在变量或者函数的声明前,用来说明“此变量/函数是在别处定义的,要在此处引用”。

extern可置于变量或者函数前,以表示变量或者函数的定义在别的文件中,提示编译器遇到此变量或函数时,在其它模块中寻找其定义。另外,extern也可用来进行链接指定。

可以通过把原函数名与参数信息结合,产生一个独特的内部名字:

这种技术叫做名字修饰(Name Mangling)。名字修饰规则没有一个标准,所以不同的编译器的名字修饰规则也不一样。

下面是一组函数,其中f()函数重载了:

f(void)和f(int)是不同的函数,除了函数名相同以外没有任何关系。当生成obj目标文件时,为了区分它们,C++编译器根据参数信息进行了名字修饰:



  • c璇█extern
    绛旓細绛旀锛欳璇█涓殑`extern`鍏抽敭瀛椾富瑕佺敤浜庡0鏄庝竴涓彉閲忔垨鑰呭嚱鏁版槸鍦ㄥ叾浠栨枃浠朵腑瀹氫箟鐨勩備娇鐢╜extern`鍏抽敭瀛楀彲浠ヨ缂栬瘧鍣ㄧ煡閬撹鍙橀噺鎴栧嚱鏁扮殑瀛樺湪锛岃繖鏍峰湪褰撳墠鏂囦欢涓氨鍙互浣跨敤瀹冦傚叿浣撴潵璇达紝`extern`涓昏鐢ㄤ簬鍦ㄥご鏂囦欢鍜屽疄鐜版枃浠朵箣闂村缓绔嬭仈绯汇傝缁嗚В閲婏細鍦–璇█涓锛宍extern`鏄竴涓瓨鍌ㄧ被璇存槑绗︼紝瀹冨憡璇夌紪璇戝櫒...
  • extern鍦╟璇█涓浣滅敤
    绛旓細extern鍦╟璇█鐨涓昏浣滅敤灏辨槸涓轰簡鑳藉姝g‘瀹炵幇C++浠g爜璋冪敤C璇█浠g爜銆傚姞涓奺xtern鍚庯紝浼氭寚绀虹紪璇戝櫒杩欓儴鍒嗕唬鐮佹寜C璇█鐨勮繘琛岀紪璇戯紝鑰屼笉鏄疌++鐨勶紝鐢变簬C++鏀寔鍑芥暟閲嶈浇锛宔xtern鍥犳缂栬瘧鍣ㄧ紪璇戝嚱鏁扮殑杩囩▼涓細灏嗗嚱鏁扮殑鍙傛暟绫诲瀷涔熷姞鍒扮紪璇戝悗鐨勪唬鐮佷腑锛岃屼笉浠呬粎鏄嚱鏁板悕锛涜孋璇█骞朵笉鏀寔鍑芥暟閲嶈浇锛屽洜姝ょ紪璇慍璇█...
  • C璇█涓璭xtern鍏抽敭瀛楃殑浣滅敤
    绛旓細褰撻渶瑕佷娇鐢ㄨ妯″潡鏃讹紝鍙渶鍦ㄤ娇鐢ㄦ椂鍏蜂綋瀹氫箟涓涓嬪閮ㄥ彉閲忓嵆鍙傛瘮濡俶ain.c涓殑 g_X , g_Y 銆 涓嶈繃闇瑕佹敞鎰忥紝鐢变簬鐢 extern 寮曠敤澶栭儴鍙橀噺锛屽彲浠ュ湪寮曠敤鐨勬ā鍧楀唴淇敼鍙橀噺鐨勫硷紝鍥犳濡傛灉鏈夊涓枃浠跺悓鏃跺寮曠敤鐨勫彉閲忚繘琛屾搷浣滐紝骞朵笖鍙兘浼氫慨鏀硅鍙橀噺锛岄偅涔堝氨浼氬奖鍝嶅叾浠栨ā鍧楃殑浣跨敤銆傚洜姝ら渶瑕佹厧閲嶄娇鐢ㄣ傛荤粨 ...
  • 鍦–璇█涓,extern鐨勪綔鐢鏄粈涔?
    绛旓細鍛婅瘔缂栬瘧鍣ㄨ繖涓彉閲忔垨鑰呭嚱鏁鐨瀹氫箟涓嶅湪褰撳墠鐨勪唬鐮佷腑锛岀瓑鍒拌繛鎺ユ椂浠庡埆鐨勫湴鏂规壘锛屽鏋滄壘鍒颁簡灏卞彲浠ユ甯哥紪璇戯紝濡傛灉鎵句笉鍒板氨缂栬瘧澶辫触銆
  • 鍦–璇█涓,extern鐨勪綔鐢鏄粈涔?
    绛旓細鍦ㄥ畾涔夊嚱鏁版椂锛屽鏋滄病鏈夊姞鍏抽敭瀛椻渟tatic鈥濓紝鎴栧啝浠ュ叧閿瓧鈥extern鈥濓紝琛ㄧず姝ゅ嚱鏁版槸澶栭儴鍑芥暟锛歔extern]鍑芥暟绫诲瀷 鍑芥暟鍚(鍑芥暟鍙傛暟琛){鈥︹ 璋冪敤澶栭儴鍑芥暟鏃讹紝闇瑕佸鍏惰繘琛岃鏄庯細[extern]鍑芥暟绫诲瀷 鍑芥暟鍚(鍙傛暟绫诲瀷琛)[锛屽嚱鏁板悕2(鍙傛暟绫诲瀷琛2)鈥︹锛沎妗堜緥]澶栭儴鍑芥暟搴旂敤銆傦紙1锛夋枃浠秏ainf.c main(){...
  • C璇█:鐢extern鍜屼笉鐢╡xtern澹版槑鏂规硶鏈浠涔鍖哄埆?
    绛旓細浣跨敤extern鍜屽寘鍚ご鏂囦欢鏉ュ紩鐢ㄥ嚱鏁版湁浠涔鍖哄埆鍛紵extern鐨寮曠敤鏂瑰紡姣斿寘鍚ご鏂囦欢瑕佺畝娲佸緱澶氾紒extern鐨勪娇鐢ㄦ柟娉曟槸鐩存帴浜嗗綋鐨勶紝鎯冲紩鐢ㄥ摢涓嚱鏁板氨鐢╡xtern澹版槑鍝釜鍑芥暟銆傝繖澶ф鏄疜ISS鍘熷垯鐨勪竴绉嶄綋鐜板惂锛佽繖鏍峰仛鐨勪竴涓槑鏄剧殑濂藉鏄紝浼氬姞閫熺▼搴忕殑缂栬瘧锛堢‘鍒囩殑璇存槸棰勫鐞嗭級鐨勮繃绋嬶紝鑺傜渷鏃堕棿銆傚湪澶у瀷C绋嬪簭缂栬瘧杩囩▼涓...
  • c璇█涓 #define鍜extern鐨勫尯鍒
    绛旓細define鐢ㄤ簬瀹氫箟甯搁噺 extern鐢ㄤ簬澶栭儴鍙橀噺鐨勫紩鐢ㄨ鏄庯紝姣斿浣犲湪鍙﹀鐨勫湴鏂(鍒鐨.c鎴.h鏂囦欢涓)寮璁句簡涓叏灞鍙橀噺int x锛屽湪褰撳墠鏂囦欢涓渶瑕佸紩鐢ㄦ椂锛岀敤extern杩涜璇存槑锛岃繖鏍风紪璇戝櫒灏变笉浼氶噸鏂扮敵璇峰瓨鍌ㄥ尯浜嗐備緥濡傦細[func1.c]int x;...[mainfunc.c]extern int x;...[func2.c]extern int x;......
  • 鍏充簬C璇█ extern 鐤戦棶
    绛旓細鍑芥暟榛樿鎯呭喌涓extern, 涓鑸嚱鏁伴兘涓衡滃閮ㄢ濆嚱鏁帮紝鎵浠ュ湪澹版槑鍑芥暟鏃朵笉鐢ㄥ姞"extern".濡傛灉鍦ㄤ竴涓枃浠朵腑澹版槑鍑芥暟鏃跺姞浜"static", 琛ㄧず杩欎釜鍑芥暟鍙湪杩欎釜鏂囦欢鍐呭彲瑙併傚叏灞*鍙橀噺*鍦*澹版槑*鏃朵竴瀹氳鍔"extern".
  • 鍗曠墖鏈C璇█,濡備綍浣跨敤extern
    绛旓細extern 鏄閮ㄥ紩鐢紝濡傛灉鏄湪鍚屼竴涓枃浠堕噷锛屼笉闇瑕侊紝濡傛灉鍙橀噺 鎴栧嚱鏁板畾涔夊湪鍙︿竴涓枃浠堕噷鎵嶉渶瑕併備綘鐪嬬湅鏄笉鏄繖绉嶆儏鍐点
  • extern "C"鐨姒傝堪
    绛旓細浠庡瓧闈笂鐪嬶細extern C锛屾湁涓ら儴鍒嗙殑鍐呭锛歟xtern鍜屸淐鈥濓紝浠ヤ笅鍒嗗埆璇存槑锛氾紙1锛塭xtern瀛﹁繃C/C++(cplusplus/cpp)鐨勪汉閮界煡閬擄紝extern鏄缂栫▼璇█涓鐨勪竴绉嶅睘鎬э紝瀹冭〃寰佷簡鍙橀噺銆佸嚱鏁扮瓑绫诲瀷鐨勪綔鐢ㄥ煙锛堝彲瑙佹э級灞炴э紝鏄紪绋嬭瑷涓殑鍏抽敭瀛椼傚綋杩涜缂栬瘧鏃讹紝璇ュ叧閿瓧鍛婅瘔缂栬瘧鍣ㄥ畠鎵澹版槑鐨勫嚱鏁板拰鍙橀噺绛夊彲浠ュ湪鏈...
  • 扩展阅读:c语言extern的用法 ... c语言中extern关键字 ... c语言extern说明 ... \t在c语言中怎么用 ... extern用法举例 ... c语言extern怎么跨文件 ... c语言的for循环例子 ... c语言函数默认为extern ... c语言extern最简单的编译 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网