c语言中的static有什么作用 C语言中 goto语句有什么作用?

C\u8bed\u8a00\u4e2dstatic\u662f\u505a\u4ec0\u4e48\u7528\u7684\uff1f

\u3000\u3000\u5728VB\uff0cC#,C\uff0cC++\uff0cJava\u4e2d\u53ef\u4ee5\u770b\u5230static\u4f5c\u4e3a\u5173\u952e\u5b57\u548c\u51fd\u6570\u51fa\u73b0\uff0c\u5728\u5176\u4ed6\u7684\u9ad8\u7ea7\u8ba1\u7b97\u673a\u8bed\u8a00\u5982FORTRAN\u3001ALGOL\u3001COBOL\u3001BASIC\u3001LISP\u3001SNOBOL\u3001PL/1\u3001Pascal\u3001PROLOG\u3001Ada\u7b49\u8bed\u8a00\u4e2d\u4e5f\u662f\u6709\u51fa\u73b0\u7684\uff0c\u53ea\u662f\u6709\u7740\u4e0d\u540c\u7684\u4f5c\u7528\u3002
\u3000\u3000static \u51fd\u6570\u5185\u90e8\u51fd\u6570\u548c\u5916\u90e8\u51fd\u6570
\u3000\u3000\u5f53\u4e00\u4e2a\u6e90\u7a0b\u5e8f\u7531\u591a\u4e2a\u6e90\u6587\u4ef6\u7ec4\u6210\u65f6\uff0cC\u8bed\u8a00\u6839\u636e\u51fd\u6570\u80fd\u5426\u88ab\u5176\u5b83\u6e90\u6587\u4ef6\u4e2d\u7684\u51fd\u6570\u8c03\u7528\uff0c\u5c06\u51fd\u6570\u5206\u4e3a\u5185\u90e8\u51fd\u6570\u548c\u5916\u90e8\u51fd\u6570\u3002
\u3000\u3000\u5185\u90e8\u51fd\u6570\uff08\u53c8\u79f0\u9759\u6001\u51fd\u6570\uff09
\u3000\u3000\u5982\u679c\u5728\u4e00\u4e2a\u6e90\u6587\u4ef6\u4e2d\u5b9a\u4e49\u7684\u51fd\u6570\uff0c\u53ea\u80fd\u88ab\u672c\u6587\u4ef6\u4e2d\u7684\u51fd\u6570\u8c03\u7528\uff0c\u800c\u4e0d\u80fd\u88ab\u540c\u4e00\u7a0b\u5e8f\u5176\u5b83\u6587\u4ef6\u4e2d\u7684\u51fd\u6570\u8c03\u7528\uff0c\u8fd9\u79cd\u51fd\u6570\u79f0\u4e3a\u5185\u90e8\u51fd\u6570\u3002
\u3000\u3000\u5b9a\u4e49\u4e00\u4e2a\u5185\u90e8\u51fd\u6570\uff0c\u53ea\u9700\u5728\u51fd\u6570\u7c7b\u578b\u524d\u518d\u52a0\u4e00\u4e2a\u201cstatic\u201d\u5173\u952e\u5b57\u5373\u53ef\uff0c\u5982\u4e0b\u6240\u793a\uff1a
\u3000\u3000static \u51fd\u6570\u7c7b\u578b \u51fd\u6570\u540d\uff08\u51fd\u6570\u53c2\u6570\u8868\uff09
\u3000\u3000{\u2026\u2026}
\u3000\u3000\u5173\u952e\u5b57\u201cstatic\u201d\uff0c\u8bd1\u6210\u4e2d\u6587\u5c31\u662f\u201c\u9759\u6001\u7684\u201d\uff0c\u6240\u4ee5\u5185\u90e8\u51fd\u6570\u53c8\u79f0\u9759\u6001\u51fd\u6570\u3002\u4f46\u6b64\u5904\u201cstatic\u201d\u7684\u542b\u4e49\u4e0d\u662f\u6307\u5b58\u50a8\u65b9\u5f0f\uff0c\u800c\u662f\u6307\u5bf9\u51fd\u6570\u7684\u4f5c\u7528\u57df\u4ec5\u5c40\u9650\u4e8e\u672c\u6587\u4ef6\u3002
\u3000\u3000\u4f7f\u7528\u5185\u90e8\u51fd\u6570\u7684\u597d\u5904\u662f\uff1a\u4e0d\u540c\u7684\u4eba\u7f16\u5199\u4e0d\u540c\u7684\u51fd\u6570\u65f6\uff0c\u4e0d\u7528\u62c5\u5fc3\u81ea\u5df1\u5b9a\u4e49\u7684\u51fd\u6570\uff0c\u662f\u5426\u4f1a\u4e0e\u5176\u5b83\u6587\u4ef6\u4e2d\u7684\u51fd\u6570\u540c\u540d\uff0c\u56e0\u4e3a\u540c\u540d\u4e5f\u6ca1\u6709\u5173\u7cfb\u3002
\u3000\u3000\u5916\u90e8\u51fd\u6570\uff1a
\u3000\u3000\u5916\u90e8\u51fd\u6570\u7684\u5b9a\u4e49\uff1a\u5728\u5b9a\u4e49\u51fd\u6570\u65f6\uff0c\u5982\u679c\u6ca1\u6709\u52a0\u5173\u952e\u5b57\u201cstatic\u201d\uff0c\u6216\u51a0\u4ee5\u5173\u952e\u5b57\u201cextern\u201d\uff0c\u8868\u793a\u6b64\u51fd\u6570\u662f\u5916\u90e8\u51fd\u6570\uff1a
\u3000\u3000[extern] \u51fd\u6570\u7c7b\u578b \u51fd\u6570\u540d\uff08\u51fd\u6570\u53c2\u6570\u8868\uff09
\u3000\u3000{\u2026\u2026}
\u3000\u3000\u8c03\u7528\u5916\u90e8\u51fd\u6570\u65f6\uff0c\u9700\u8981\u5bf9\u5176\u8fdb\u884c\u8bf4\u660e\uff1a
\u3000\u3000[extern] \u51fd\u6570\u7c7b\u578b \u51fd\u6570\u540d\uff08\u53c2\u6570\u7c7b\u578b\u8868\uff09[\uff0c\u51fd\u6570\u540d2\uff08\u53c2\u6570\u7c7b\u578b\u88682\uff09\u2026\u2026]\uff1b
\u3000\u3000[\u6848\u4f8b]\u5916\u90e8\u51fd\u6570\u5e94\u7528\u3002
\u3000\u3000\u2474\u6587\u4ef6mainf.c
\u3000\u3000main()
\u3000\u3000{ extern void input\uff08\u2026\uff09\uff0cprocess\uff08\u2026\uff09\uff0coutput\uff08\u2026\uff09\uff1b
\u3000\u3000input\uff08\u2026\uff09\uff1b process\uff08\u2026\uff09\uff1b output\uff08\u2026\uff09\uff1b
\u3000\u3000}
\u3000\u3000\u2475\u6587\u4ef6subf1.c
\u3000\u3000\u2026\u2026
\u3000\u3000extern void input\uff08\u2026\u2026\uff09 /*\u5b9a\u4e49\u5916\u90e8\u51fd\u6570*/
\u3000\u3000{\u2026\u2026}
\u3000\u3000\u2476\u6587\u4ef6subf2.c
\u3000\u3000\u2026\u2026
\u3000\u3000extern void process\uff08\u2026\u2026\uff09 /*\u5b9a\u4e49\u5916\u90e8 \u51fd\u6570*/
\u3000\u3000{\u2026\u2026}
\u3000\u3000\u2477\u6587\u4ef6subf3.c
\u3000\u3000\u2026\u2026
\u3000\u3000extern void output\uff08\u2026\u2026\uff09 /*\u5b9a\u4e49\u5916\u90e8\u51fd\u6570*/
\u3000\u3000{\u2026\u2026}

\u3000\u3000goto\u8bed\u53e5\u4e5f\u79f0\u4e3a\u65e0\u6761\u4ef6\u8f6c\u79fb\u8bed\u53e5\uff0c\u5176\u4e00\u822c\u683c\u5f0f\u5982\u4e0b: goto \u8bed\u53e5\u6807\u53f7; \u5176\u4e2d\u8bed\u53e5\u6807\u53f7\u662f\u6309\u6807\u8bc6\u7b26\u89c4\u5b9a\u4e66\u5199\u7684\u7b26\u53f7\uff0c \u653e\u5728\u67d0\u4e00\u8bed\u53e5\u884c\u7684\u524d\u9762\uff0c\u6807\u53f7\u540e\u52a0\u5192\u53f7(:)\u3002\u8bed\u53e5\u6807\u53f7\u8d77\u6807\u8bc6\u8bed\u53e5\u7684\u4f5c\u7528\uff0c\u4e0egoto \u8bed\u53e5\u914d\u5408\u4f7f\u7528\u3002
\u3000\u3000\u5982: label: i++;
\u3000\u3000loop: while(x<7);
\u3000\u3000C\u8bed\u8a00\u4e0d\u9650\u5236\u7a0b\u5e8f\u4e2d\u4f7f\u7528\u6807\u53f7\u7684\u6b21\u6570\uff0c\u4f46\u5404\u6807\u53f7\u4e0d\u5f97\u91cd\u540d\u3002goto\u8bed\u53e5\u7684\u8bed\u4e49\u662f\u6539\u53d8\u7a0b\u5e8f\u6d41\u5411\uff0c \u8f6c\u53bb\u6267\u884c\u8bed\u53e5\u6807\u53f7\u6240\u6807\u8bc6\u7684\u8bed\u53e5\u3002
\u3000\u3000goto\u8bed\u53e5\u901a\u5e38\u4e0e\u6761\u4ef6\u8bed\u53e5\u914d\u5408\u4f7f\u7528\u3002\u53ef\u7528\u6765\u5b9e\u73b0\u6761\u4ef6\u8f6c\u79fb\uff0c \u6784\u6210\u5faa\u73af\uff0c\u8df3\u51fa\u5faa\u73af\u4f53\u7b49\u529f\u80fd\u3002
\u3000\u3000\u4f46\u662f\uff0c\u5728\u7ed3\u6784\u5316\u7a0b\u5e8f\u8bbe\u8ba1\u4e2d\u4e00\u822c\u4e0d\u4e3b\u5f20\u4f7f\u7528goto\u8bed\u53e5\uff0c \u4ee5\u514d\u9020\u6210\u7a0b\u5e8f\u6d41\u7a0b\u7684\u6df7\u4e71\uff0c\u4f7f\u7406\u89e3\u548c\u8c03\u8bd5\u7a0b\u5e8f\u90fd\u4ea7\u751f\u56f0\u96be\u3002

最主要有两点用途。
让一个变量长期有效,而不管其是在什么地方被申明。比如:
int fun1()
{
static int s_value = 0;
....
}
那么fun1不管在什么地方被调用,当函数退出后,s_value最后的值将一直会被系统保存(相当于一个全局变量),下次s_value再被用到时,也即当fun1()再次被调用时,s_value初始值将是最近被保存过的值(请注意s_value初始化操作只会被执行一次,即上述s_value =0 这个语句)。

2.避免多个文件使用了相同的变量名而导致冲突
 比如有多个文件,分别由几个人独立开发的。假定他们在各自的文件中定义相同的“全局”变量名(仅仅指在他们独自的文件中全局),当系统集成时,由于他们使用了名字一样的“全局”变量,导致有难于遇见的问题。解决这个问题方便的做法就是在各自文件中,在相同的全局变量申明前加上static修饰符。这样系统就会为他们分配不同的内存,互不影响了。

  • c璇█涓璼tatic 鍒板簳鏈夊暐浣滅敤鍟?
    绛旓細鍦–璇█涓紝static鐨勪綔鐢ㄦ湁涓変釜锛屽垎鍒涓嬶細1銆闅愯棌锛涘綋鍚屾椂缂栬瘧澶氫釜鏂囦欢鏃讹紝鎵鏈夋湭鍔爏tatic鍓嶇紑鐨勫叏灞鍙橀噺鍜屽嚱鏁伴兘鍏锋湁鍏ㄥ眬鍙鎬с2銆佷繚鎸佸彉閲忓唴瀹圭殑鎸佷箙锛涘瓨鍌ㄥ湪闈欐佹暟鎹尯鐨勫彉閲忎細鍦ㄧ▼搴忓垰寮濮嬭繍琛屾椂灏卞畬鎴愬垵 濮嬪寲锛屼篃鏄敮涓鐨勪竴娆″垵濮嬪寲銆3銆侀粯璁ゅ垵濮嬪寲涓0锛涘湪闈欐佹暟鎹尯锛屽唴瀛樹腑鎵鏈夌殑瀛楄妭榛樿鍊奸兘...
  • c璇█涓璼tatic鏄浠涔鎰忔(static鍦╟璇█涓槸浠涔堟剰鎬濇槸鐢ㄤ粈涔堣緭鍑)
    绛旓細鍦–璇█涓紝static鍏抽敭瀛椾笉浠呭彲浠ョ敤鏉ヤ慨楗板彉閲忥紝杩樺彲浠ョ敤鏉ヤ慨楗板嚱鏁銆傚湪浣跨敤static鍏抽敭瀛椾慨楗板彉閲忔椂锛屾垜浠О姝ゅ彉閲忎负闈欐佸彉閲忋傞潤鎬佸彉閲忕殑瀛樺偍鏂瑰紡涓庡叏灞鍙橀噺涓鏍凤紝閮芥槸闈欐佸瓨鍌ㄦ柟寮忋備絾杩欓噷闇瑕佺壒鍒鏄庣殑鏄紝闈欐佸彉閲忓睘浜庨潤鎬佸瓨鍌ㄦ柟寮忥紝灞炰簬闈欐佸瓨鍌ㄦ柟寮忕殑鍙橀噺鍗翠笉涓瀹氬氨鏄潤鎬佸彉閲忋備緥濡傦紝鍏ㄥ眬鍙橀噺铏界劧灞炰簬闈欐...
  • Static鏄浠涔鎰忔濆晩,鍦C绋嬪簭閲岄潰
    绛旓細static鍙簲鐢ㄤ簬搴旂敤浜庡唴閮ㄥ彉閲忋佸閮ㄥ彉閲忓拰鍑芥暟銆傚簲鐢ㄤ簬鍐呴儴鍙橀噺鏃讹紝鍏朵綔鐢ㄦ槸鐢ㄦ潵鎸囧畾鍙橀噺鐨勫瓨鍌ㄧ被鍒负闈欐佸彉閲忋傚簲鐢ㄤ簬澶栭儴鍙橀噺鍜屽嚱鏁版椂锛屽叾浣滅敤鏄檺鍒跺彉閲忔垨鍑芥暟鐨勪綔鐢ㄨ寖鍥翠粎闄愪簬澶栭儴鍙橀噺鎴栧嚱鏁版墍鍦ㄧ殑婧愭枃浠躲1銆佸湪鏁翠釜绋嬪簭杩愯鐨勮繃绋嬩腑锛屾棤璁洪潤鎬佸唴閮ㄥ彉閲忔墍鍦ㄧ殑鍑芥暟琚皟鐢ㄤ簡澶氬皯娆★紝闈欐佸唴閮ㄥ彉閲忓彧杩愯涓娆...
  • C璇█static鐨勪綔鐢?
    绛旓細鍦–璇█涓紝static鍏抽敭瀛楃殑浣滅敤濡備笅锛1銆佸湪淇グ鍙橀噺鐨勬椂锛宻tatic淇グ鐨勯潤鎬佸眬閮ㄥ彉閲忓彧鎵ц涓娆★紝鑰屼笖寤堕暱浜嗗眬閮ㄥ彉閲忕殑鐢熷懡鍛ㄦ湡锛岀洿鍒扮▼搴忚繍琛岀粨鏉熶互鍚庢墠閲婃斁銆2銆乻tatic淇グ鍏ㄥ眬鍙橀噺鐨勬椂锛岃繖涓叏灞鍙橀噺鍙兘鍦ㄦ湰鏂囦欢涓闂紝涓嶈兘鍦ㄥ叾瀹冩枃浠朵腑璁块棶锛屽嵆渚挎槸extern澶栭儴澹版槑涔熶笉鍙互銆3銆乻tatic淇グ涓涓嚱鏁帮紝鍒欒繖涓...
  • static鍦c璇█涓殑鐢ㄦ硶
    绛旓細static鍦╟璇█涓槸绉佹湁銆侀潤鎬佹剰鎬銆傜敤浜庡湪鍑芥暟涓0鏄庘滈潤鎬佸彉閲忊濈敤锛屽湪姣忎竴娆¤皟鐢ㄥ悗锛岃鍙橀噺骞朵笉鍦ㄥ嚱鏁拌繑鍥炴椂绔嬪嵆閲婃斁锛屽彉閲忎腑淇濆瓨鐨勫硷紝鍙互淇濈暀鍒颁笅涓娆¤皟鐢ㄦ椂缁х画鏈夋晥銆傜鏈夊氨鏄闅愯棌銆俿tatic鍑芥暟鍙兘澹版槑鍚庣殑鏈枃涓皟鐢ㄣ俿tatic鍏ㄥ眬鍙橀噺鍙兘澹版槑鍚庣殑鏈枃涓皟鐢ㄣ俿tatic灞閮ㄥ彉閲忓彧鑳藉0鏄庡悗鐨勬湰鍑芥暟璋冪敤 闈欐...
  • static鍏抽敭瀛楃殑浣滅敤
    绛旓細static鍏抽敭瀛楃殑浣滅敤濡備笅锛1銆佷慨楗板彉閲 闈欐佸叏灞鍙橀噺锛氬叏灞鍙橀噺鍓嶅姞static淇グ锛岃鍙橀噺灏辨垚涓轰簡闈欐佸叏灞鍙橀噺銆傛垜浠煡閬擄紝鍏ㄩ儴鍙橀噺鍦ㄦ暣涓伐绋嬮兘鍙互琚闂紝鑰屽湪娣诲姞浜唖tatic鍏抽敭瀛椾箣鍚庯紝杩欎釜鍙橀噺灏卞彧鑳藉湪鏈枃浠跺唴琚闂簡銆傚洜姝わ紝鍦ㄨ繖閲岋紝static鐨勪綔鐢ㄥ氨鏄檺瀹氫綔鐢ㄥ煙銆傞潤鎬佸眬閮ㄥ彉閲忥細灞涓嶅彉閲忔坊鍔犱簡static淇グ...
  • c璇█static浣滅敤鑼冨洿鏄浠涔鍛?
    绛旓細static鐨勪綔鐢ㄦ湁涓夋潯銆備竴銆佺涓涓綔鐢細闅愯棌銆傚綋鎴戜滑鍚屾椂缂栬瘧澶氫釜鏂囦欢鏃讹紝鎵鏈夋湭鍔爏tatic鍓嶇紑鐨勫叏灞鍙橀噺鍜屽嚱鏁伴兘鍏锋湁鍏ㄥ眬鍙鎬с備綘鍙兘浼氶棶锛氫负浠涔堝湪a.c涓畾涔夌殑鍏ㄥ眬鍙橀噺a鍜屽嚱鏁癿sg鑳藉湪main.c涓娇鐢紵鍓嶉潰璇磋繃锛屾墍鏈夋湭鍔爏tatic鍓嶇紑鐨勫叏灞鍙橀噺鍜屽嚱鏁伴兘鍏锋湁鍏ㄥ眬鍙鎬э紝鍏跺畠鐨勬簮鏂囦欢涔熻兘璁块棶銆傛渚嬩腑锛宎...
  • C璇█涓璼tatic鏄仛浠涔鐢ㄧ殑?
    绛旓細1銆static淇グ灞閮ㄥ彉閲忥紝鎴愪负涓涓眬閮ㄩ潤鎬佸彉閲忋俿tatic淇グ灞閮ㄥ彉閲(闈欐佸眬閮ㄥ彉閲)涓庢櫘閫氬眬閮ㄥ彉閲忕浉姣旓紝瀹冪殑浼樺娍鍦ㄤ簬锛氣憼闈欐佸眬閮ㄥ彉閲忎綔鐢ㄥ煙涓庤繛鎺ュ睘鎬т笌鏅氬眬閮ㄥ彉閲忎竴鏍凤紱鈶″瓨鍌ㄧ被锛氶潤鎬佸眬閮ㄥ彉閲忓垎閰嶅湪data/bss娈碉紝鏅氬眬閮ㄥ彉閲忓湪鏍堜笂锛涒憿鐢熷懡鍛ㄦ湡锛氬洜涓哄瓨鍌ㄧ被鐨勪笉鍚岋紝闈欐佸眬閮ㄥ彉閲忕殑鐢熷懡鍛ㄦ湡寰楀埌寤堕暱浜嗭紝...
  • c璇█涓殑static鏈変粈涔浣滅敤
    绛旓細static int s_value = 0;...} 閭d箞fun1涓嶇鍦浠涔鍦版柟琚皟鐢紝褰撳嚱鏁伴鍑哄悗锛宻_value鏈鍚庣殑鍊煎皢涓鐩翠細琚郴缁熶繚瀛橈紙鐩稿綋浜庝竴涓叏灞鍙橀噺锛夛紝涓嬫s_value鍐嶈鐢ㄥ埌鏃讹紝涔熷嵆褰揻un1()鍐嶆琚皟鐢ㄦ椂锛宻_value鍒濆鍊煎皢鏄渶杩戣淇濆瓨杩囩殑鍊硷紙璇锋敞鎰弒_value鍒濆鍖栨搷浣滃彧浼氳鎵ц涓娆★紝鍗充笂杩皊_value =0 ...
  • static鍦c璇█涓浠h〃浠涔
    绛旓細鍦C璇█涓锛宍static`鏄竴涓叧閿瓧锛岀敤浜庝慨楗板彉閲忋佸嚱鏁板拰浠g爜鍧椼傚畠鏈変互涓嬪嚑绉嶅惈涔夛細淇グ鍙橀噺锛氬綋涓涓彉閲忚澹版槑涓篳static`鏃讹紝瀹冧細鍦ㄨ绋嬪簭鐨勪綔鐢ㄥ煙鍐呰瀛樺偍锛岃屼笉鏄湪鍫嗘爤涓娿傝繖鎰忓懗鐫璇ュ彉閲忓彲浠ュ湪绋嬪簭鐨勫涓嚱鏁颁箣闂村叡浜紝骞朵笖涓嶄細鍥犱负鍑芥暟鐨勮皟鐢ㄨ屼涪澶便備慨楗板嚱鏁帮細褰撲竴涓嚱鏁拌澹版槑涓篳static`鏃...
  • 扩展阅读:static int a 3 3 ... static在c语言中怎么用 ... c语言static的用法 ... static-x ... c语言static经典例子 ... c语言中static解释 ... c语言中static int ... c语言static是常量吗 ... c语言中static的作用 举例 ...

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