关于C语言中用extern声明外部变量的问题(回答的好的追加赏金) 编写C语言程序中,这个extern引用外部变量或函数的关键字...

C\u8bed\u8a00\u4e2d\u5173\u4e8eextern \u58f0\u660e\u5916\u90e8\u51fd\u6570\u7684\u95ee\u9898

\u5916\u90e8\u51fd\u6570\uff1f\uff1f\uff1f extern\u53ea\u58f0\u660e\u53d8\u91cf\u7684\u5427\u3002\u5916\u90e8\u51fd\u6570\u53ea\u9700\u8981\u5305\u542b\u5b83\u6240\u5728\u7684\u5934\u6587\u4ef6\u5c31\u53ef\u4ee5
\u4f8b\u5982 \u6709 file1,file2,file3 ,3\u4e2a\u6587\u4ef6
\u5728file1\u4e2d\u58f0\u660e\u4e86\u4e00\u4e2a\u51fd\u6570 func( int a,int b);

\u90a3\u4e48\u5728file2,file3\u5982\u679c\u9700\u8981\u4f7f\u7528file1\u4e2d\u7684func\u51fd\u6570\u65f6\uff0c\u9700\u8981\u5728file2,file3\u6587\u4ef6\u7684\u5f00\u59cb\u4f4d\u7f6e\uff0c\u5199\u5165#include"file1"\u624d\u53ef\u4ee5\u6b63\u786e\u4f7f\u7528

\u5efa\u8bae\u5916\u90e8\u7684\u53d8\u91cf\u90fd\u52a0\u4e0aextern\u58f0\u660e\uff08\u6211\u8fd8\u771f\u4e0d\u77e5\u9053\u53ef\u4ee5\u4e0d\u52a0\u3002\u3002\uff09\uff0c\u6700\u8d77\u7801\u53ef\u8bfb\u6027\u5927\u5927\u63d0\u9ad8\uff0c\u8ba9\u5176\u4ed6\u4eba\u90fd\u77e5\u9053\u8fd9\u4e2a\u53d8\u91cf\u662f\u94fe\u63a5\u8fc7\u6765\u7684

哈哈,终于被我找到错误在哪了。

是因为extern后如果不加数据类型,直接加变量,等同于extern int
所以你定义数据时int型,就没问题,而定义成char就不行了。

不信的话,你把程序二(运行OK的程序)中的int全部改成其他的(不是int就行),绝对就错误提示了。

这个情况在不同的编译器上或许会不一样,建议extern 后都要加数据类型。

必须出错,你第一个函数定义了C之后还没赋值就输出,你说能不出错吗?第二个程序是跳到了MAX函数去赋值,第一个没有

第二个主函数里面有个MAX函数的声明,C语言中不允许函数嵌套,所以错误。

  • C璇█涓璭xtern鐨勭敤娉
    绛旓細鍦C璇█涓锛"extern"鏄竴涓叧閿殑鏍囪瘑绗︼紝瀹冪敤浜庢寚绀哄彉閲忔垨鍑芥暟鐨勫畾涔変綅浜庡叾浠栨簮鏂囦欢涓傚綋鍦ㄤ唬鐮佷腑閬囧埌extern淇グ鐨勫彉閲忔垨鍑芥暟鏃讹紝缂栬瘧鍣ㄤ細鍦ㄥ叾浠栨ā鍧椾腑鏌ユ壘鍏跺疄闄澹版槑銆備互涓嬫槸extern鍦ㄤ笉鍚屾儏鍐典笅鐨勭敤娉曞拰娉ㄦ剰浜嬮」锛1. 鍙橀噺鍜屽嚱鏁板0鏄庯細extern鍙互鐢ㄤ簬鍙橀噺鍜屽嚱鏁扮殑澹版槑锛屾彁绀虹紪璇戝櫒鍦ㄥ叾浠栨枃浠朵腑鏌ユ壘瀹氫箟銆...
  • c璇█涓璭xtern鐨勬剰鎬濇槸浠涔??
    绛旓細C璇█涓extern鐨勫惈涔夋槸澶栭儴鍙橀噺澹版槑銆傝缁嗚В閲婂涓嬶細1. extern鐨勫熀鏈惈涔 鍦–璇█涓紝extern鍏抽敭瀛楃敤浜庡0鏄庝竴涓彉閲忔槸鍦ㄥ叾浠栨枃浠朵腑瀹氫箟鐨勩傞氳繃浣跨敤extern鍏抽敭瀛楋紝鍙互鍦ㄥ綋鍓嶆枃浠朵腑寮曠敤鍦ㄥ叾浠栧湴鏂瑰畾涔夌殑鍙橀噺銆傝繖鎰忓懗鐫锛屼綘鍙互鍦ㄤ竴涓枃浠朵腑澹版槑涓涓彉閲忥紝骞跺湪鍙︿竴涓枃浠朵腑瀹氫箟鍜屽垵濮嬪寲瀹冦傝繖浣垮緱浠g爜鐨勭粍缁...
  • extern鍦c璇█涓鏄粈涔堟剰鎬?
    绛旓細鍦C璇█涓锛宔xtern鍏抽敭瀛楃敤浜庡0鏄庝竴涓彉閲忔垨鍑芥暟鏄湪鍏朵粬鏂囦欢涓畾涔夌殑銆傛帴涓嬫潵锛屾垜灏嗚缁嗚В閲婅繖涓蹇碉細涓銆佸彉閲忓0鏄庝笌澶栭儴鍙橀噺 鍦–璇█涓紝褰撴垜浠兂瑕佷娇鐢ㄤ竴涓彉閲忥紝浣嗕笉鎯冲湪褰撳墠鐨勪唬鐮佸潡涓畾涔夊畠鏃讹紝灏卞彲浠浣跨敤extern鍏抽敭瀛楄繘琛屽0鏄庛傝繖绉嶅彉閲忛氬父琚О涓哄閮ㄥ彉閲忔垨鍏ㄥ眬鍙橀噺銆傞氳繃extern澹版槑锛屾垜浠彲浠ュ憡璇...
  • c璇█extern
    绛旓細绛旀锛C璇█涓鐨刞extern`鍏抽敭瀛椾富瑕佺敤浜澹版槑涓涓彉閲忔垨鑰呭嚱鏁版槸鍦ㄥ叾浠栨枃浠朵腑瀹氫箟鐨勩浣跨敤`extern`鍏抽敭瀛楀彲浠ヨ缂栬瘧鍣ㄧ煡閬撹鍙橀噺鎴栧嚱鏁扮殑瀛樺湪锛岃繖鏍峰湪褰撳墠鏂囦欢涓氨鍙互浣跨敤瀹冦傚叿浣撴潵璇达紝`extern`涓昏鐢ㄤ簬鍦ㄥご鏂囦欢鍜屽疄鐜版枃浠朵箣闂村缓绔嬭仈绯汇傝缁嗚В閲婏細鍦–璇█涓紝`extern`鏄竴涓瓨鍌ㄧ被璇存槑绗︼紝瀹冨憡璇夌紪璇戝櫒...
  • c璇█涓璭xtern鐨勬剰鎬濇槸浠涔?
    绛旓細C璇█涓璭xtern鐨勫惈涔夋槸澶栭儴寮曠敤銆備互涓嬫槸閽堝璇ュ叧閿瘝鐨 涓銆佸熀鏈畾涔 鍦–璇█涓紝`extern`鏄竴涓叧閿瓧锛屼富瑕佺敤浜澹版槑涓涓彉閲忔垨鍑芥暟鏄湪鍏朵粬鏂囦欢涓畾涔夌殑銆傞氳繃浣跨敤`extern`鍏抽敭瀛楋紝鎴戜滑鍙互鍛婅瘔缂栬瘧鍣ㄨ鍙橀噺鎴栧嚱鏁板湪鍏朵粬鍦版柟宸茬粡瀹氫箟锛岃繖閲屽彧鏄紩鐢ㄣ傝繖鏍凤紝鍦ㄧ紪璇戞椂锛岀紪璇戝櫒浼氱‘淇濋摼鎺ュ埌姝g‘鐨勪綅缃互鑾峰彇...
  • extern鐨勮瑙
    绛旓細extern鐨勮瑙o細extern鏄c璇█涓鐨勪竴涓叧閿瓧锛屼竴鑸敤鍦ㄥ彉閲忓悕鍓嶆垨鍑芥暟鍚嶅墠锛屼綔鐢ㄦ槸鐢ㄦ潵璇存槑姝ゅ彉閲/鍑芥暟鏄湪鍒瀹氫箟鐨勶紝瑕佸湪姝ゅ寮曠敤銆傚鏋滃湪鎵鏈夊嚱鏁颁箣澶栧畾涔夌殑鍙橀噺娌℃湁鎸囧畾鍏跺瓨鍌ㄧ被鍒紝閭d箞瀹冨氨鏄竴涓閮ㄥ彉閲忥紝瀹冪殑浣滅敤鍩熸槸浠庡畠鐨勫畾涔夌偣鍒版湰鏂囦欢鐨勬湯灏俱傚湪鍗曚釜婧愭枃浠朵腑鐨勭‘鏄繖鏍凤紝濡傛灉鏈夊涓簮鏂囦欢...
  • c璇█涓璭xtern鎬庝箞鐢,涓句釜绠鍗曚緥瀛愯鏄庝笅,璋㈣阿銆
    绛旓細extern鏄澶栭儴澹版槑鐢ㄧ殑锛岀敤鏉澹版槑澶栭儴鐨勫嚱鏁版垨鑰呭彉閲忓畾涔夈備緥濡傦紝浣犲湪1.C涓瀹氫箟浜嗕竴涓嚱鏁板拰鍙橀噺锛歷oid fun1(void);int a = 0;鑰屼綘瑕佸湪2.c涓璋冪敤 fun1()锛屽苟涓旇鍙朼鐨勫硷紝閭d箞闇瑕佸啀2.c鐨勫ご閮ㄥ涓嬪閮ㄥ0鏄庯細extern void fun1(void);extern int a = 0;杩欐牱鐨勮瘽鍦ㄧ紪璇戝櫒鍦ㄧ紪璇2.c鏃讹紝涓嶄細...
  • C璇█:鐢╡xtern鍜屼笉鐢╡xtern澹版槑鏂规硶鏈変粈涔堝尯鍒?
    绛旓細extern鐨勪娇鐢ㄦ柟娉曟槸鐩存帴浜嗗綋鐨勶紝鎯冲紩鐢ㄥ摢涓嚱鏁板氨鐢╡xtern澹版槑鍝釜鍑芥暟銆傝繖澶ф鏄疜ISS鍘熷垯鐨勪竴绉嶄綋鐜板惂锛佽繖鏍峰仛鐨勪竴涓槑鏄剧殑濂藉鏄紝浼氬姞閫熺▼搴忕殑缂栬瘧锛堢‘鍒囩殑璇存槸棰勫鐞嗭級鐨勮繃绋嬶紝鑺傜渷鏃堕棿銆傚湪澶у瀷C绋嬪簭缂栬瘧杩囩▼涓紝杩欑宸紓鏄潪甯告槑鏄剧殑銆3.姝ゅ锛宔xtern淇グ绗﹀彲鐢ㄤ簬鎸囩ずC鎴栬匔锛嬶紜鍑芥暟鐨勮皟鐢ㄨ鑼冦傛瘮濡...
  • C璇█涓鏈夊摢浜涘瓨鍌ㄧ被鍨?
    绛旓細C璇█瀹氫箟浜嗗洓绉嶅瓨鍌ㄧ被鍨嬶細auto銆extern銆乺egister銆乻tatic銆傝繖浜涘瓨鍌ㄧ被鍨嬪喅瀹氫簡鍙橀噺鍦ㄧ▼搴忎腑濡備綍鍒嗛厤鍐呭瓨銆1. auto auto鏄眬閮ㄥ彉閲忕殑榛樿瀛樺偍绫诲瀷锛屾剰鍛崇潃鍙橀噺浼氬湪鍑芥暟璋冪敤鏍堜腑鍒嗛厤绌洪棿銆浣跨敤auto鍏抽敭瀛楁槸鍙夌殑锛屽洜涓哄鏋滄病鏈夋寚瀹氬瓨鍌ㄧ被鍨嬶紝鍙橀噺浼氳榛樿涓篴uto銆2. extern extern鐢ㄤ簬澹版槑鍦ㄥ叾浠栨枃浠朵腑瀹氫箟鐨...
  • C璇█涓璭xtern鍏抽敭瀛楃殑浣滅敤
    绛旓細extern 鍏抽敭瀛 澹版槑涓涓滃閮ㄥ彉閲忊 銆傛湁浜嗚繖涓0鏄庯紝灏卞彲浠ヤ粠澹版槑寮濮嬬殑鍦版柟锛屽悎娉曞湴浣跨敤璇ュ閮ㄥ彉閲忎簡銆傚湪渚1涓紝鎴戜滑鍦ㄦ渶鍚庢墠瀹氫箟浜嗗閮ㄥ彉閲 g_X , g_Y 锛岀敱浜庡閮ㄥ彉閲忓畾涔夌殑浣嶇疆鍦╩ain鍑芥暟涔嬪悗锛屽洜姝ゆ湰鏉ユ垜浠湪main鍑芥暟涓槸涓嶈兘澶熷紩鐢 g_X , g_Y 鐨勶紝鍥犱负鍦ㄤ娇鐢ㄧ殑鏃跺欏苟娌℃湁瀹氫箟瀹冧滑鐨勬暟鍊...
  • 扩展阅读:c语言extern的用法 ... c语言中extern关键字 ... c语言extern说明 ... c语言extern怎么跨文件 ... c需要extern ... c语言extern结构体 ... extern用法举例 ... extern int ... c语言extern最简单的编译 ...

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