c语言extern的用法 C语言的extern用法

C\u8bed\u8a00\u4e2dextern\u7684\u7528\u6cd5


int iExtern = 0;
int main()
{
extern int iExtern;
printf("%d\n", iExtern);
return 0;
}

你这里有几个问题我给你说下。
1,我把你的程序直接黏贴是编译不了的,就是有许多中文字符的符号,这个要注意,所有符号要在英文格式下输入。
2,你在main函数中并没有调用num()这个函数,也就是num()函数未被执行,所以即使编译通过也不会输出3,而可能是0或者不确定的值。
3,再就是如果num函数在另外一个.c文件中,你在main函数的c文件中要对num函数进行声明,extern int num()这个要放在main函数的外部,并且在main函数的上边。并且对于 a 这个全局变量也要声明,也就是extern int a;这句。 你放在main函数中是没问题的,但是这个就意味着a这个变量只能在 main 函数中被调用,而无法在main所在的c文件中的其他函数调用。

extern一般用于跨文件的全局变量上。

如果只是想在函数内部给a赋值,完全不需要用到extern。传递引用就可以了。
例如
main()
{
int a;
num(a);
printf("%d", a);
}

int num(int &b)
{
b = 3;
}

或者传递指针,或者使用返回值

你是用num里面的复制的话 那输出3 的也是num里面的 a 如果想输出最外面的那个a那么num上面不用再定义一个a

应该可以吧

  • c璇█宸ョ▼閲屽叾瀹冩枃浠跺紩鐢ㄥ叏灞鍙橀噺?
    绛旓細鍦C璇█涓紩鐢ㄥ閮ㄥ彉閲忥紝涓鑸娇鐢extern鍏抽敭瀛椼備妇涓緥瀛愬涓嬶細//1.c 涓畾涔変竴涓彉閲廹_aint g_a = 100;//2.c 涓畾涔変竴涓嚱鏁拌緭鍑篻_a#include <stdio.h>extern int g_a; //杩欓噷闇瑕佺敤extern璇存槑g_a鏄竴涓閮ㄥ叏灞鍙橀噺void f() { printf("%d\n", g_a);}//3.c main鍑芥暟涓皟鐢╢...
  • C璇█涓庢牱鍦ㄥご鏂囦欢涓畾涔変竴涓兘澶熷湪鎵鏈夋枃浠朵腑閮藉彲浠ヤ娇鐢ㄧ殑鍏ㄥ眬鏁扮粍...
    绛旓細C璇█鍙互閫氳繃鍦.c鏂囦欢涓畾涔夛紝澶存枃浠朵腑extern鐨鏂瑰紡瀹炵幇涓涓兘澶熷湪鎵鏈夋枃浠朵腑閮藉彲浠ヤ娇鐢ㄧ殑鍏ㄥ眬鏁扮粍鍙橀噺銆傚叿浣撳仛娉曞涓嬶細璁炬湁涓涓椤圭洰鏂囦欢鏈 1.c銆2.c鍜3.c涓変釜婧愮▼搴忔枃浠讹紱濡傛灉鏈変竴涓叏灞鏁扮粍闇瑕佹墍鏈夋枃浠朵娇鐢紝閭d箞鍙互娣诲姞涓涓猟ata.c鏂囦欢锛屽湪鍏朵腑娣诲姞鍏ㄥ眬鏁扮粍鐨勫畾涔夛紱鍚戦」鐩腑娣诲姞data.h鏂囦欢锛屽湪...
  • c璇█extern鐨勭敤娉
    绛旓細extern int num锛堬級杩欎釜瑕佹斁鍦╩ain鍑芥暟鐨勫閮紝骞朵笖鍦╩ain鍑芥暟鐨勪笂杈广傚苟涓斿浜 a 杩欎釜鍏ㄥ眬鍙橀噺涔熻澹版槑锛屼篃灏辨槸extern int a锛涜繖鍙ャ 浣犳斁鍦╩ain鍑芥暟涓槸娌¢棶棰樼殑锛屼絾鏄繖涓氨鎰忓懗鐫a杩欎釜鍙橀噺鍙兘鍦 main 鍑芥暟涓璋冪敤锛岃屾棤娉曞湪main鎵鍦ㄧ殑c鏂囦欢涓殑鍏朵粬鍑芥暟璋冪敤銆
  • C璇█涓殑extern鐨搴旂敤,C楂樻墜杩
    绛旓細extern float a;extern float b;extern 鏃讹紝涔熻甯︾被鍨嬬殑锛屽畠鏄0鏄庡槢銆 C 璇█閲岄潰锛屼綘瑕佹槸娌℃湁鏄惧紡鐨勬寚瀹氱被鍨嬶紝榛樿鐨勫氨鏄 int锛屾墍浠ヤ細浜х敓鑾悕鍏跺鐨勯棶棰樸侰/C++ 涓紝鍙橀噺鏄彲浠ュ娆″0鏄庣殑锛屼絾鏄彧鑳藉畾涔変竴娆°備篃灏辨槸璇达紝澹版槑鍜屽畾涔夋槸涓嶅悓鐨勬蹇点傚綋浣犲湪涓涓湴鏂硅鐢ㄥ畠鐨勬椂鍊欙紝浣犲彲浠ュ0鏄庝竴...
  • C璇█涓庝箞璋冪敤澶栭儴鍑芥暟?
    绛旓細1銆佸閮ㄥ嚱鏁extern鏃跺0鏄庤繖涓嚱鏁颁负澶栭儴鍑芥暟锛屾湰鏂囦欢涓嶅仛瀹氫箟锛屽彧璋冪敤锛岀紪璇戜笉浼氬嚭閿欙紝浣嗕笉鑳借繍琛岋紙娌℃湁鍑芥暟瀹炰綋锛夈傚鏋滄兂鏈夎繍琛岀粨鏋滃氨蹇呴』灏嗗嚱鏁板疄浣撳寘鍚繘鏉ワ紝鎵浠ユ枃浠跺寘鍚拰extern鏄厤鍚堜娇鐢ㄧ殑銆傛枃浠跺寘鍚彧闇瑕佸寘鍚.h灏辨槸瀹炰綋鐨勫ご鏂囦欢锛屼絾鏈変簺杞欢璨屼技涓嶈兘璇嗗埆澶存枃浠跺拰c鐨鍏崇郴锛屾墍浠ュ氨鍙兘鍖呭惈.c鏂囦欢...
  • c++涓殑extern淇グ绗﹀湪鍙橀噺鐨 澹版槑鍜屽畾涔夋柟闈㈡湁浠涔堜綔鐢
    绛旓細姣斿鍦C锛嬶紜涓皟鐢–搴撳嚱鏁帮紝灏遍渶瑕佸湪C锛嬶紜绋嬪簭涓敤extern 鈥淐鈥濆0鏄庤寮曠敤鐨勫嚱鏁(鍙湁C++鎵嶆湁extern 鈥淐鈥鐨勭敤娉锛屽湪C涓繖鏍风敤浼氭姤閿)銆傝繖鏄粰閾炬帴鍣ㄧ敤鐨勶紝鍛婅瘔閾炬帴鍣ㄥ湪閾炬帴鐨勬椂鍊欑敤C鍑芥暟瑙勮寖鏉ラ摼鎺ャ備富瑕佸師鍥犳槸C锛嬶紜鍜孋绋嬪簭缂栬瘧瀹屾垚鍚庡湪鐩爣浠g爜涓懡鍚嶈鍒欎笉鍚屻4.瀵逛簬extern鍙橀噺鏉ヨ锛屼粎浠呮槸涓...
  • C璇█涓彉閲忓瓨鍌╯tatic鍜extern涓や釜鍏抽敭瀛楃殑浣滅敤鍒嗗埆鏄粈涔
    绛旓細extern鍏抽敭瀛 鍦C璇█涓紝淇グ绗xtern鐢ㄥ湪鍙橀噺鎴栬呭嚱鏁扮殑澹版槑鍓嶏紝鐢ㄦ潵璇存槑鈥滄鍙橀噺/鍑芥暟鏄湪鍒瀹氫箟鐨勶紝瑕佸湪姝ゅ寮曠敤鈥濄傚湪涓婇潰鐨勪緥瀛愪腑鍙互鐪嬪嚭锛屽湪file2涓鏋滄兂璋冪敤file1涓殑鍙橀噺a锛屽彧椤荤敤extern杩涜澹版槑鍗冲彲璋冪敤a锛岃繖灏辨槸extern鐨浣滅敤銆傚湪杩欓噷瑕佹敞鎰廵xtern澹版槑鐨勪綅缃鍏朵綔鐢ㄥ煙涔熸湁鍏崇郴锛屽鏋滄槸鍦...
  • 銆愭偓璧忋戝嚑涓C璇█鍒濆鐨勯棶棰,姹傝В,姹傝В!璋㈣阿
    绛旓細1銆佸繀椤诲畾涔塮ile *fp 鎴杅ile fp銆2銆乨at鏂囦欢鍙互瀛樻斁鏂囨湰鏂囦欢銆3銆extern涔嬪悗灏卞彉鎴愬叏灞銆傚彲浠ヤ竴寮濮嬪氨extern锛屾病鏈夊嚭鐜拌繃涔熸病鏈夊叧绯汇傝繖涓猠xtern鏄渶澶х殑鍏ㄥ眬銆備笉灞闄愬湪涓や釜鏂囦欢涔嬮棿銆傛墍鏈夌殑鏂囦欢閮藉彲浠ヤ娇鐢ㄣ備竴鑸殑鎵璋撳叏灞鍙橀噺浣滅敤鍩熷彧鏄湪鑷繁鐨勬枃浠朵腑銆5銆&+鏅氬彉閲忚〃绀哄湴鍧锛屾暟缁勫悕灏辨槸鍦板潃锛屽鏋...
  • C璇█鍚勭被绗﹀彿鎰忎箟浠ュ強鐢ㄦ硶?
    绛旓細float锛氬0鏄庢诞鐐瑰瀷鍙橀噺鎴栧嚱鏁 double 锛氬0鏄庡弻绮惧害鍙橀噺鎴栧嚱鏁 char 锛氬0鏄庡瓧绗﹀瀷鍙橀噺鎴栧嚱鏁 struct锛氬0鏄庣粨鏋勪綋鍙橀噺鎴栧嚱鏁 union锛氬0鏄庡叡鐢ㄦ暟鎹被鍨 enum 锛氬0鏄庢灇涓剧被鍨 typedef锛氱敤浠ョ粰鏁版嵁绫诲瀷鍙栧埆鍚 const 锛氬0鏄庡彧璇诲彉閲 unsigned锛氬0鏄庢棤绗﹀彿绫诲瀷鍙橀噺鎴栧嚱鏁 signed锛氬0鏄庢湁绗﹀彿绫诲瀷鍙橀噺鎴栧嚱鏁 extern锛...
  • c璇█澶栭儴鍙橀噺extern鏄笉鏄瓑浜庡叏灞鍙橀噺
    绛旓細澶栭儴鍙橀噺鏄湪鍑芥暟鐨勫閮ㄥ畾涔夌殑鍏ㄥ眬鍙橀噺锛屼粬鐨勪綔鐢ㄥ煙鏄粠鍙橀噺鐨勫畾涔夊嚭寮濮嬶紝鍒版湰绋嬪簭鏈熬鐨勭粨鏉熴傛湁鏃堕渶瑕佺敤extern鏉ュ0鏄庡閮ㄥ彉閲忥紝浠ユ墿灞曞閮ㄥ彉閲忕殑浣滅敤鍩熴傚湪绋嬪簭婧愪唬鐮佷腑鐨勬煇涓琛屽畾涔夌殑鍙兘鏄繖涓琛屼笅闈㈢殑鍙互璇诲啓杩欎釜鍙橀噺鐭ラ亾 void main(){extern a,b;//澶栭儴鍙橀噺澹版槑 ...} int a=12,b=23;/...
  • 扩展阅读:extern用法举例 ... const在c语言中的用法 ... c++中extern的用法 ... extern具体用法 ... c语言中extern怎么用 ... typedef在c++中用法 ... c语言static的用法 ... extern关键字的作用 ... extern void ...

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