C声明函数前加extern和不加有什么区别? 什么情况,某个函数的申明,前面必须要加extern ?

C\u8bed\u8a00\uff1a\u7528extern\u548c\u4e0d\u7528extern\u58f0\u660e\u65b9\u6cd5\u6709\u4ec0\u4e48\u533a\u522b\uff1f

\u5728C\u8bed\u8a00\u4e2d\uff0c\u4fee\u9970\u7b26extern\u7528\u5728\u53d8\u91cf\u6216\u8005\u51fd\u6570\u7684\u58f0\u660e\u524d\uff0c\u7528\u6765\u8bf4\u660e\u201c\u6b64\u53d8\u91cf/\u51fd\u6570\u662f\u5728\u522b\u5904\u5b9a\u4e49\u7684\uff0c\u8981\u5728\u6b64\u5904\u5f15\u7528\u3002

1.
extern\u4fee\u9970\u53d8\u91cf\u7684\u58f0\u660e\u3002\u4e3e\u4f8b\u6765\u8bf4\uff0c\u5982\u679c\u6587\u4ef6a.c\u9700\u8981\u5f15\u7528b.c\u4e2d\u53d8\u91cfint v\uff0c\u5c31\u53ef\u4ee5\u5728a.c\u4e2d\u58f0\u660eextern int
v\uff0c\u7136\u540e\u5c31\u53ef\u4ee5\u5f15\u7528\u53d8\u91cfv\u3002\u8fd9\u91cc\u9700\u8981\u6ce8\u610f\u7684\u662f\uff0c\u88ab\u5f15\u7528\u7684\u53d8\u91cfv\u7684\u94fe\u63a5\u5c5e\u6027\u5fc5\u987b\u662f\u5916\u94fe\u63a5\uff08external\uff09\u7684\uff0c\u4e5f\u5c31\u662f\u8bf4a.c\u8981\u5f15\u7528\u5230v\uff0c\u4e0d\u53ea\u662f\u53d6\u51b3\u4e8e\u5728a.c\u4e2d\u58f0\u660eextern
int
v\uff0c\u8fd8\u53d6\u51b3\u4e8e\u53d8\u91cfv\u672c\u8eab\u662f\u80fd\u591f\u88ab\u5f15\u7528\u5230\u7684\u3002\u8fd9\u6d89\u53ca\u5230c\u8bed\u8a00\u7684\u53e6\u5916\u4e00\u4e2a\u8bdd\u9898\uff0d\uff0d\u53d8\u91cf\u7684\u4f5c\u7528\u57df\u3002\u80fd\u591f\u88ab\u5176\u4ed6\u6a21\u5757\u4ee5extern\u4fee\u9970\u7b26\u5f15\u7528\u5230\u7684\u53d8\u91cf\u901a\u5e38\u662f\u5168\u5c40\u53d8\u91cf\u3002\u8fd8\u6709\u5f88\u91cd\u8981\u7684\u4e00\u70b9\u662f\uff0cextern
int v\u53ef\u4ee5\u653e\u5728a.c\u4e2d\u7684\u4efb\u4f55\u5730\u65b9\uff0c\u6bd4\u5982\u4f60\u53ef\u4ee5\u5728a.c\u4e2d\u7684\u51fd\u6570fun\u5b9a\u4e49\u7684\u5f00\u5934\u5904\u58f0\u660eextern int
v\uff0c\u7136\u540e\u5c31\u53ef\u4ee5\u5f15\u7528\u5230\u53d8\u91cfv\u4e86\uff0c\u53ea\u4e0d\u8fc7\u8fd9\u6837\u53ea\u80fd\u5728\u51fd\u6570fun\u4f5c\u7528\u57df\u4e2d\u5f15\u7528v\u7f62\u4e86\uff0c\u8fd9\u8fd8\u662f\u53d8\u91cf\u4f5c\u7528\u57df\u7684\u95ee\u9898\u3002\u5bf9\u4e8e\u8fd9\u4e00\u70b9\u6765\u8bf4\uff0c\u5f88\u591a\u4eba\u4f7f\u7528\u7684\u65f6\u5019\u90fd\u5fc3\u5b58\u987e\u8651\u3002\u597d\u50cfextern\u58f0\u660e\u53ea\u80fd\u7528\u4e8e\u6587\u4ef6\u4f5c\u7528\u57df\u4f3c\u7684\u3002

2.
extern\u4fee\u9970\u51fd\u6570\u58f0\u660e\u3002\u4ece\u672c\u8d28\u4e0a\u6765\u8bb2\uff0c\u53d8\u91cf\u548c\u51fd\u6570\u6ca1\u6709\u533a\u522b\u3002\u51fd\u6570\u540d\u662f\u6307\u5411\u51fd\u6570\u4e8c\u8fdb\u5236\u5757\u5f00\u5934\u5904\u7684\u6307\u9488\u3002\u5982\u679c\u6587\u4ef6a.c\u9700\u8981\u5f15\u7528b.c\u4e2d\u7684\u51fd\u6570\uff0c\u6bd4\u5982\u5728b.c\u4e2d\u539f\u578b\u662fint
fun(int mu)\uff0c\u90a3\u4e48\u5c31\u53ef\u4ee5\u5728a.c\u4e2d\u58f0\u660eextern int fun\uff08int mu\uff09\uff0c\u7136\u540e\u5c31\u80fd\u4f7f\u7528fun\u6765\u505a\u4efb\u4f55\u4e8b\u60c5\u3002\u5c31\u50cf\u53d8\u91cf\u7684\u58f0\u660e\u4e00\u6837\uff0cextern
int fun\uff08int
mu\uff09\u53ef\u4ee5\u653e\u5728a.c\u4e2d\u4efb\u4f55\u5730\u65b9\uff0c\u800c\u4e0d\u4e00\u5b9a\u975e\u8981\u653e\u5728a.c\u7684\u6587\u4ef6\u4f5c\u7528\u57df\u7684\u8303\u56f4\u4e2d\u3002\u5bf9\u5176\u4ed6\u6a21\u5757\u4e2d\u51fd\u6570\u7684\u5f15\u7528\uff0c\u6700\u5e38\u7528\u7684\u65b9\u6cd5\u662f\u5305\u542b\u8fd9\u4e9b\u51fd\u6570\u58f0\u660e\u7684\u5934\u6587\u4ef6\u3002\u4f7f\u7528extern\u548c\u5305\u542b\u5934\u6587\u4ef6\u6765\u5f15\u7528\u51fd\u6570\u6709\u4ec0\u4e48\u533a\u522b\u5462\uff1fextern\u7684\u5f15\u7528\u65b9\u5f0f\u6bd4\u5305\u542b\u5934\u6587\u4ef6\u8981\u7b80\u6d01\u5f97\u591a\uff01extern\u7684\u4f7f\u7528\u65b9\u6cd5\u662f\u76f4\u63a5\u4e86\u5f53\u7684\uff0c\u60f3\u5f15\u7528\u54ea\u4e2a\u51fd\u6570\u5c31\u7528extern\u58f0\u660e\u54ea\u4e2a\u51fd\u6570\u3002\u8fd9\u5927\u6982\u662fKISS\u539f\u5219\u7684\u4e00\u79cd\u4f53\u73b0\u5427\uff01\u8fd9\u6837\u505a\u7684\u4e00\u4e2a\u660e\u663e\u7684\u597d\u5904\u662f\uff0c\u4f1a\u52a0\u901f\u7a0b\u5e8f\u7684\u7f16\u8bd1\uff08\u786e\u5207\u7684\u8bf4\u662f\u9884\u5904\u7406\uff09\u7684\u8fc7\u7a0b\uff0c\u8282\u7701\u65f6\u95f4\u3002\u5728\u5927\u578bC\u7a0b\u5e8f\u7f16\u8bd1\u8fc7\u7a0b\u4e2d\uff0c\u8fd9\u79cd\u5dee\u5f02\u662f\u975e\u5e38\u660e\u663e\u7684\u3002

3.
\u6b64\u5916\uff0cextern\u4fee\u9970\u7b26\u53ef\u7528\u4e8e\u6307\u793aC\u6216\u8005C\uff0b\uff0b\u51fd\u6570\u7684\u8c03\u7528\u89c4\u8303\u3002\u6bd4\u5982\u5728C\uff0b\uff0b\u4e2d\u8c03\u7528C\u5e93\u51fd\u6570\uff0c\u5c31\u9700\u8981\u5728C\uff0b\uff0b\u7a0b\u5e8f\u4e2d\u7528extern
\u201cC\u201d\u58f0\u660e\u8981\u5f15\u7528\u7684\u51fd\u6570\u3002\u8fd9\u662f\u7ed9\u94fe\u63a5\u5668\u7528\u7684\uff0c\u544a\u8bc9\u94fe\u63a5\u5668\u5728\u94fe\u63a5\u7684\u65f6\u5019\u7528C\u51fd\u6570\u89c4\u8303\u6765\u94fe\u63a5\u3002\u4e3b\u8981\u539f\u56e0\u662fC\uff0b\uff0b\u548cC\u7a0b\u5e8f\u7f16\u8bd1\u5b8c\u6210\u540e\u5728\u76ee\u6807\u4ee3\u7801\u4e2d\u547d\u540d\u89c4\u5219\u4e0d\u540c

\u51fd\u6570\u5982\u679c\u5b9a\u4e49\u5728\u672c.c\u6587\u4ef6\u4e2d\uff0c \u6216\u8005\u5b9a\u4e49\u5728\u4e00\u4e2a.h\u6587\u4ef6\u4e2d\u5e76\u4e14\u672c.c\u6587\u4ef6#include\u4e86\u8fd9\u4e2a.h\u5c31\u4e0d\u7528\u52a0extern\uff0c\u56e0\u4e3a\u8fd9\u4e24\u79cd\u60c5\u51b5\u4e0b\u672c.c\u6587\u4ef6\u90fd\u53ef\u4ee5\u76f4\u63a5\u627e\u5230
\u4e00\u65e6\u6709\u4e00\u4e2a\u51fd\u6570\u5b9a\u4e49\u5728\u53e6\u4e00\u4e2a.c\u6587\u4ef6\u4e2d\uff0c\u800c\u4f60\u8981\u60f3\u5728\u672c.c\u6587\u4ef6\u4e2d\u4f7f\u7528\u7684\u65f6\u5019\u5c31\u5fc5\u987b\u7528extern\u5173\u5065\u5b57\u58f0\u660e\u4e00\u4e0b\uff0c\u5426\u5219\u94fe\u63a5\u4f1a\u51fa\u9519\u3002 extern\u7684\u4f5c\u7528\u5c31\u662f\u544a\u8bc9\u94fe\u63a5\u5668\uff0c\u5728\u8fd9\u4e2a\u5de5\u7a0b\u4e2d\u7684\u67d0\u4e00\u4e2aobj\u6587\u4ef6\u4e2d\u6709extern\u4fee\u9970\u7684\u540e\u8fb9\u8fd9\u51fd\u6570\uff0c\u8fd9\u6837\u94fe\u63a5\u5668\u5c31\u53ef\u4ee5\u6b63\u5e38\u5de5\u4f5c\u4e86\u3002\u5426\u5219\u94fe\u63a5\u5668\u5728\u672c.obj\u6587\u4ef6\u4e2d\u627e\u4e0d\u5230\u4f60\u540e\u8fb9\u5199\u7684\u8fd9\u4e2a\u51fd\u6570\u7b26\u53f7\uff0c\u5c31\u4f1a\u62a5\u9519

extern说明这个函数是在其它的文件中已经有的,用extern只是引用其它文件的函数 。

你好!
extern说明这个函数是在其它的文件中已经有的,用extern只是引用其它文件的函数

仅代表个人观点,不喜勿喷,谢谢。

extern说明这个函数是在其它的文件中已经有的,用extern只是引用其它文件的函数

extern表示全局变量,即其他文件也可以使用,只要处于这个范围。

vs2005的编译器不是主流,最规范的编译器为gcc, 更符合cpp编译要求。

  • C璇█:鐢╡xtern鍜屼笉鐢extern澹版槑鏂规硶鏈変粈涔堝尯鍒?
    绛旓細鍦C璇█涓紝淇グ绗extern鐢鍦ㄥ彉閲忔垨鑰鍑芥暟鐨澹版槑鍓锛岀敤鏉ヨ鏄庘滄鍙橀噺/鍑芥暟鏄湪鍒瀹氫箟鐨勶紝瑕佸湪姝ゅ寮曠敤銆1.extern淇グ鍙橀噺鐨勫0鏄庛備妇渚嬫潵璇达紝濡傛灉鏂囦欢a.c闇瑕佸紩鐢╞.c涓彉閲廼nt v锛屽氨鍙互鍦╝.c涓澹版槑extern int v锛岀劧鍚庡氨鍙互寮曠敤鍙橀噺v銆傝繖閲岄渶瑕佹敞鎰忕殑鏄紝琚紩鐢ㄧ殑鍙橀噺v鐨勯摼鎺ュ睘鎬у繀椤绘槸澶栭摼鎺ワ紙...
  • c涓簱鍑芥暟涓殑澶存枃浠朵负浠涔堝湪澹版槑鍑芥暟鐨勬椂鍊鍓嶉潰閮藉姞"extern"?
    绛旓細C鍑芥暟鍓嶅姞extern琛ㄧず璇ュ嚱鏁板凡缁忓湪鍏朵粬鏂囦欢涓畾涔銆俥xtern鏄疌锛孋++涓殑涓涓叧閿瓧銆俥xtern鍙疆浜庡彉閲忔垨鑰呭嚱鏁板墠锛屼互琛ㄧず鍙橀噺鎴栬呭嚱鏁扮殑瀹氫箟鍦ㄥ埆鐨勬枃浠朵腑锛屾彁绀虹紪璇戝櫒閬囧埌姝ゅ彉閲忔垨鍑芥暟鏃讹紝鍦ㄥ叾瀹冩ā鍧椾腑瀵绘壘鍏跺畾涔夈傚彟澶栵紝extern涔熷彲鐢ㄦ潵杩涜閾炬帴鎸囧畾銆
  • C澹版槑鍑芥暟鍓嶅姞extern鍜屼笉鍔犳湁浠涔堝尯鍒?
    绛旓細extern璇存槑杩欎釜鍑芥暟鏄湪鍏跺畠鐨勬枃浠朵腑宸茬粡鏈夌殑锛鐢╡xtern鍙槸寮曠敤鍏跺畠鏂囦欢鐨勫嚱鏁 銆
  • 浠涔堟儏鍐,鏌愪釜鍑芥暟鐨勭敵鏄,鍓嶉潰蹇呴』瑕鍔爀xtern ?
    绛旓細鍑芥暟濡傛灉瀹氫箟鍦ㄦ湰.c鏂囦欢涓紝 鎴栬呭畾涔夊湪涓涓.h鏂囦欢涓苟涓旀湰.c鏂囦欢#include浜嗚繖涓.h灏变笉鐢鍔爀xtern锛屽洜涓鸿繖涓ょ鎯呭喌涓嬫湰.c鏂囦欢閮藉彲浠ョ洿鎺ユ壘鍒 涓鏃︽湁涓涓嚱鏁板畾涔夊湪鍙︿竴涓.c鏂囦欢涓紝鑰屼綘瑕佹兂鍦ㄦ湰.c鏂囦欢涓娇鐢ㄧ殑鏃跺欏氨蹇呴』鐢╡xtern鍏冲仴瀛澹版槑涓涓嬶紝鍚﹀垯閾炬帴浼氬嚭閿欍 extern鐨勪綔鐢ㄥ氨鏄憡璇夐摼鎺ュ櫒锛屽湪...
  • C璇█ 鍑芥暟澹版槑鍓峞xtern鐨勭敤娉?
    绛旓細f()锛涜〃绀轰綘鏄庣‘鐭ラ亾浣犺璋冪敤鐨勬槸鈥*.h鈥濋噷鐨刦()杩欎釜鍑芥暟锛屽叾瀹冧綘閮戒笉闇瑕併傗滆繖涔堣锛屽鏋滄墍鏈澶栭儴鍑芥暟澹版槑鏃堕兘鍔犱笂extern灏变笉闇瑕乮nclude 鈥*.h鈥濆ご鏂囦欢浜嗭紵鈥濇槸鐨勶紝浣嗘槸浣犳兂鎯筹紝濡傛灉浣犳墍鏈夊閮ㄥ嚱鏁伴兘瑕佺敤鍒扮殑璇濓紝浣犺嚜宸辨墜鍔ㄧ粰鎵鏈鍑芥暟鍔犱笂extern杩樻槸鐩存帴涓涓猧nclude 鈥*.h鈥濆摢涓洿鏂逛究鍛 ...
  • C鍑芥暟鍓嶅姞extern鏄粈涔堟剰鎬?
    绛旓細璇存槑杩欎釜鍑芥暟鏄湪鍏跺畠鐨勬枃浠朵腑宸茬粡鏈夌殑锛鐢╡xtern鍙槸寮曠敤鍏跺畠鏂囦欢鐨勫嚱鏁
  • extern int f();涓巌nt f();鏈変粈涔堝尯鍒?
    绛旓細鍑芥暟澹版槑鍓嶅姞extern琛ㄧず杩欎釜鍑芥暟鐨勫疄鐜颁笉鍦ㄥ綋鍓嶆枃浠朵腑锛堜弗鏍煎湴璇存槸缂栬瘧鍏冿級锛屼絾鏄笉鍔爀xtern涓鏍蜂細鍦ㄥ叾浠栫紪璇戝厓涓鎵惧疄鐜般傝屽姞浜唀xtern涔熶竴鏍蜂細鍦ㄥ綋鍓嶇紪璇戝厓涓鎵俱-- 鍒璇... C/C++涓嶅厑璁稿嚱鏁伴噸鍚嶏紙鍩烘湰涓婁篃灏辨槸鑴氭湰璇█鍏佽... 鍚庡畾涔夌殑浼氭妸鍏堝畾涔夌殑瑕嗙洊...锛夈侰++鐪嬩技鏈夊悕瀛椾竴鏍风殑鍑芥暟...
  • C璇█涓叏灞鍙橀噺璇存槑绗extern璇ュ浣曚娇鐢?
    绛旓細鍓嶉潰鍔爀xtern锛堢▼搴忓憳鍙互涓嶅姞锛屼絾缂栬瘧鍣ㄩ粯璁ゅ姞涓婏級鑻ユ湰鏂囦欢 寮曠敤鍒殑鏂囦欢涓殑鍏ㄥ眬鍙橀噺 涓瀹氳鍔犱笂extern 澹版槑涓涓嬶紝濡 鍦╢ile1.c涓畾涔夌殑鍏ㄥ眬鍙橀噺锛宖ile2.c涓兂瑕佷娇鐢ㄨ鍙橀噺锛屽嵆浣縤nclude浜嗗ご鏂囦欢锛屼絾鏄鏋滄病鏈塭xtern鍏抽敭瀛楁潵澹版槑鐨勮瘽锛屽湪file2.c涓槸鏃犳硶璁块棶鍒扮殑銆
  • C璇█涓,鍑芥暟鐨勯殣鍚瓨鍌ㄧ被鍨嬫槸:A. auto B.static C.extern D...
    绛旓細C璇█瑙勫畾锛屽彧瑕佸湪瀹氫箟鍑芥暟鏃朵笉杩涜瀛樺偍绫诲瀷鐨勬樉寮忚鏄庯紝鍑芥暟鐨勫瓨鍌ㄧ被鍨嬪氨闅愬惈涓哄閮ㄧ被鍨嬶紝鍗extern鍨嬶紝澶栭儴绫诲瀷鍏佽鍏朵粬鏂囦欢涓殑鍑芥暟璋冪敤銆傚疄闄呬笂鍑芥暟鐨澹版槑鍜瀹氫箟閮戒笉闇瑕佹坊鍔爀xtern鍏抽敭瀛楋紝鍦ㄥ疄闄呬娇鐢ㄧ殑鏃跺欎篃鏈濂戒笉瑕佹坊鍔犲叧閿瓧銆傚鏋滀竴涓嚱鏁版槸涓嶄細琚叾瀹冩枃浠惰皟鐢ㄧ殑锛岄偅涔堣繖涓嚱鏁板簲璇ヨ澹版槑鎴恠tatic鐨勩
  • ...涓涓畾涔夊湪鍙︿竴涓枃浠剁殑鍑芥暟鏃,鍓嶉潰涓嶅姞extern涔熻兘鍦ㄨ繖涓枃浠惰皟鐢...
    绛旓細C鏍囧噯瀹氫箟锛鍑芥暟榛樿鏄叏灞鐨勶紝鍙橀噺榛樿鏄眬閮ㄧ殑銆傛墍浠ヤ綘瀹氫箟鐨勫嚱鏁板湪鍏朵粬鏂囦欢涔熷彲浠ヨ皟鐢ㄣ備絾瀹氫箟鐨勫彉閲忓湪鍏朵粬鏂囦欢蹇呴』瑕extern澹版槑鍚庝娇鐢
  • 扩展阅读:c需要extern ... extern声明外部函数 ... 用extern声明外部变量 ... c语言 extern 全局变量 ... sin tan cos函数表 ... c语言中extern函数声明 ... c语言库函数大全 ... c语言计算x的n次幂 ... extern可以声明局部变量吗 ...

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