一个C语言程序的执行起点是什么? 为什么说一个C语言源程序只能并且必须只有一个main()函数

\u4e00\u4e2aC\u8bed\u8a00\u7a0b\u5e8f\u7684\u6267\u884c\u8d77\u70b9\u662f\u4ec0\u4e48?

\u4e00\u822c\u6765\u8bf4\uff0cC\u8bed\u8a00\u90fd\u662f\u4ecemain\u51fd\u6570\u5f00\u59cb\u8fd0\u884c\u7684\uff0c\u8fd9\u4e2amain\u51fd\u6570\u53ef\u4ee5\u8ba4\u4e3a\u662fC\u8bed\u8a00\u7a0b\u5e8f\u7684\u6267\u884c\u8d77\u70b9\u3002
\u66f4\u51c6\u786e\u7684\u8bf4\u6cd5\uff0c\u5e94\u8be5\u662fC\u8bed\u8a00\u4ece\u5165\u53e3\u51fd\u6570\u5f00\u59cb\u6267\u884c\u3002
\u56e0\u4e3a\uff0c\u867d\u7136\u5927\u591a\u6570\u7f16\u8bd1\u5668\u90fd\u662f\u4ee5main\u4e3a\u8d77\u59cb\u6267\u884c\u51fd\u6570\uff0c\u4e5f\u5c31\u662f\u5165\u53e3\u51fd\u6570\uff0c\u4f46\u8fd8\u662f\u6709\u4f8b\u5916\u7684\uff0c\u6bd4\u5982\uff1a
1\u3001\u5bf9\u4e8e\u652f\u6301UNICODE
WIN32
\u5e94\u7528\u7a0b\u5e8f\uff0c\u5176\u7a0b\u5e8f\u5165\u53e3\u4e3atmain\uff1b
2\u3001\u5bf9\u4e8ewindows
\u7a97\u4f53\u7a0b\u5e8f\uff0c\u5176\u7a0b\u5e8f\u5165\u53e3\u4e3aWinMain\uff1b
3\u3001gcc\u4e2d\uff0c\u4f20\u7edf\u6709\u4e24\u4e2a\u7f16\u8bd1\u9009\u9879\u53ef\u4ee5\u6307\u5b9a\u5165\u53e3\u51fd\u6570\u540d\uff0c\u5373\uff1a
gcc
-e
entryfunc
gcc
--Entry=entryfunc
\u5bf9\u4e8e\u5f53\u524d\u65b0\u7248gcc\uff0c
\u4ec5\u652f\u6301-e\u3002
\u6bd4\u5982\u7f16\u8bd1\u65f6\u7528\u547d\u4ee4\uff1a
gcc
-e
my_main
a.c
-o
a.out
\u5c31\u4f1a\u628amy_main\u4f5c\u4e3a\u5165\u53e3\u51fd\u6570\u8c03\u7528\u3002

main()\u662f\u4f60\u81ea\u5df1\u7684\u7a0b\u5e8f\u6216\u8005\u6574\u4e2a\u7a0b\u5e8f\uff08\u82e5\u5e72\u4eba\u7f16\u5199\u7684\uff09\u8fd0\u884c\u7684\u8d77\u70b9

C\u8fd9\u6574\u4e2a\u7cfb\u7edf\u9664\u4e86\u81ea\u5df1\u7f16\u5199\u7684\u90e8\u5206\u5916\uff0c\u8fd8\u6709\u4e00\u90e8\u5206\uff0c\u662f\u7f16\u8bd1\u7cfb\u7edf\u5b9a\u4e49\u7684
\u81ea\u5df1\u7f16\u5199\u7684\u90e8\u5206\uff0c\u4ecemain()\u51fd\u6570\u542f\u52a8\u8fd0\u884c\u4e00\u822c\u6765\u8bf4\uff0c\u4e5f\u5728main()\u51fd\u6570\u91cc\u7ed3\u675f\u3002
\u8fd9\u79cd\u60c5\u51b5\u662f\u6b63\u5e38\u7684\uff0c\u800c\u4e14\u6ca1\u6709\u9519\u8bef\u7684\uff0c\u7a0b\u5e8f\u8fd0\u884c\u60c5\u51b5\u3002
\u901a\u5e38\u6211\u4eec\u5e76\u4e0d\u662f\u4ece\u5934\u7f16\u5199\u6574\u4e2a\u7a0b\u5e8f\uff08\u6bd4\u5982\u6c47\u7f16\u90a3\u6837\uff0c\u628a\u4e00\u5207\u638c\u63e1\u5728\u81ea\u5df1\u624b\u4e2d\uff09
\u6240\u4ee5\uff0c\u7cfb\u7edf\u4e3a\u4e86\u7b80\u5316\u6211\u4eec\u7f16\u7a0b\uff0c\u5bf9\u4e00\u4e9b\u786c\u4ef6\u76f8\u5173\u7684\uff0c\u64cd\u4f5c\u7cfb\u7edf\u76f8\u5173\u7684\uff0c\u8fd8\u6709\u4e00\u4e9b\u662f\u7f16\u8bd1\u5668\u76f8\u5173\u7684\u4ee3\u7801\uff0c\u5199\u5728\u5e93\u91cc\uff0c\u5176\u4e2d\u6709\u4e9b\u521d\u59cb\u5316\u4ee3\u7801\uff0c\u4f1a\u5728main()\u51fd\u6570\u542f\u52a8\u524d\u8fd0\u884c\uff0c\u8fd9\u4e2a\u542f\u52a8\u4ee3\u7801\u4f1a\u8c03\u7528\u6211\u4eec\u7f16\u5199\u7684main()\u51fd\u6570\uff0c\u6240\u4ee5\u5176\u5b83\u51fd\u6570\u53ef\u4ee5\u4efb\u610f\u7f16\u5199\uff0cmain()\u7684\u683c\u5f0f\u662f\u56fa\u5b9a\u7684\uff0c\u662f\u6211\u4eec\u81ea\u5df1\u7f16\u5199\u7684\u4ee3\u7801\uff0c\u6211\u4eec\u81ea\u5df1\u7684\u7a0b\u5e8f\u542f\u52a8\u7684\u5730\u65b9\uff0c\u901a\u5e38\u4e5f\u662f\u6211\u4eec\u81ea\u5df1\u7684\u7a0b\u5e8f\u7ed3\u675f\u7684\u5730\u65b9\u3002

一般来说,C语言都是从main函数开始运行的,这个main函数可以认为是C语言程序的执行起点。
更准确的说法,应该是C语言从入口函数开始执行。
因为,虽然大多数编译器都是以main为起始执行函数,也就是入口函数,但还是有例外的,比如:
1、对于支持UNICODE WIN32 应用程序,其程序入口为tmain;
2、对于windows 窗体程序,其程序入口为WinMain;
3、gcc中,传统有两个编译选项可以指定入口函数名,即:
gcc -e entryfunc
gcc --Entry=entryfunc
对于当前新版gcc, 仅支持-e。 比如编译时用命令:
gcc -e my_main a.c -o a.out
就会把my_main作为入口函数调用。

总是从main函数开始,从main函数结束。其它函数只是在以上执行过程中被调用。执行起点及顺序与源程序中函数位置无关。

从main()开始执行的,不管它写在那里.
你只要记信main始main终,也就是开始也是main函数而结束也是在些函数中.

main()函数
其他的子函数都是没有用的
从main()开始 然后在main()里的语句执行下去

从main()函数开始执行的,不管它写在那里.

  • 涓涓猚璇█绋嬪簭鎬绘槸浠( )寮濮鎵ц
    绛旓細main鍑芥暟锛屽張绉颁富鍑芥暟锛屾槸绋嬪簭鎵ц鐨勮捣鐐癸紝main鏄浉瀵规潵璇寸殑锛屽鍚岄煶瀛︾悊璁轰箣涓昏皟浜庢硾闊筹紝娉涢煶鍗崇▼搴忎腑鐨勯櫎main涔嬪鐨勫叾浠栧嚱鏁帮紝杩庡悎浜轰滑鐨勬濊冩柟寮忚岀敓鎴愮殑鑰岄潪蹇呭畾鐨勬ā寮忋傛湁涓绘湁娆★紝鎵ц璧锋潵鏉℃竻缂曟瀽锛屾棦鍙皢绋嬪簭妯″潡鍖栧張瀹炵幇浜嗕竴涓棴鍚堢殑鏁翠綋銆傚湪鎵ц绋嬪簭鏃讹紝鐢辩郴缁熻皟鐢╩ain鍑芥暟 銆俶ain 鍑芥暟鏄湪绋...
  • 鍦涓涓狢璇█绋嬪簭鐨勬墽琛屾槸浠( )銆 A) 鏈▼搴忕殑main鍑芥暟寮濮,鍒癿ain鍑 ...
    绛旓細C璇█绋嬪簭鐨勬墽琛岃捣濮嬩簬涓涓壒瀹氱殑闃舵锛岀瓟妗堟槸A锛屽嵆浠庢湰绋嬪簭鐨main鍑芥暟寮濮嬶紝鐩村埌main鍑芥暟缁撴潫銆傝繖鏄疌璇█鐨勫熀鏈粨鏋勮鍒欍傚湪C璇█涓紝婧愮▼搴忕殑鏋勬垚鐏垫椿澶氭牱锛屽彲浠ョ敱涓涓垨澶氫釜婧愭枃浠剁粍鎴愶紝姣忎釜鏂囦欢鍙兘鍖呭惈涓涓垨澶氫釜鍑芥暟锛屼絾姣忎釜绋嬪簭蹇呴』鏈変竴涓笖浠呮湁涓涓猰ain鍑芥暟浣滀负鍏ュ彛鐐广傝繖涓猰ain鍑芥暟鏄▼搴忔墽琛...
  • 1銆涓涓狢绋嬪簭鐨勬墽琛屾槸浠巁__銆
    绛旓細C绋嬪簭鐨勬墽琛岃捣鐐规槸main鍑芥暟銆傛墍鏈塁绋嬪簭閮藉繀椤诲寘鍚竴涓猰ain鍑芥暟锛岀▼搴忕殑鎵ц浠巑ain鍑芥暟鐨勭涓鏉¤鍙ュ紑濮嬶紝鑷砿ain鍑芥暟鐨勬渶鍚庝竴鏉¤鍙ョ粨鏉熴傜劧鑰岋紝鐗规畩鎯呭喌涓嬶紝濡傛灉绋嬪簭涓皟鐢ㄤ簡exit鍑芥暟锛岀▼搴忎細绔嬪嵆缁堟銆傚湪C璇█涓紝杈撳叆杈撳嚭澶勭悊閫氬父浣跨敤scanf()鍜宲rintf()鍑芥暟銆傝繖浜涘嚱鏁扮殑鐢ㄦ硶鐩稿澶嶆潅锛屼絾瀹冧滑鏄疌璇█鏍囧噯搴...
  • c璇█main鏄粈涔鎰忔?
    绛旓細鍦–璇█涓紝main鍑芥暟鏄▼搴忔墽琛岀殑璧风偣銆傚畠琛ㄧず绋嬪簭鐨勫叆鍙o紝鍦ㄨ鍑芥暟涓紝绋嬪簭寮濮嬫墽琛岋紝骞朵笖鍦ㄨ鍑芥暟杩愯缁撴潫鍚庯紝鏁翠釜绋嬪簭鎵嶈兘缁撴潫銆俶ain鍑芥暟鐨勫畾涔変竴鑸涓嬫墍绀猴細int main(int argc, char* argv[])锛屽叾涓紝argv鏄瓧绗︿覆鏁扮粍锛岃〃绀哄懡浠よ鍙傛暟鐨勫硷紝argc琛ㄧず鍛戒护琛屽弬鏁扮殑涓暟銆傚湪main鍑芥暟涓紝鎴戜滑鍙互璋冪敤...
  • 涓涓狢璇█绋嬪簭鐨勬墽琛岃捣鐐规槸浠涔?
    绛旓細涓鑸潵璇达紝C璇█閮芥槸浠巑ain鍑芥暟寮濮嬭繍琛岀殑锛岃繖涓猰ain鍑芥暟鍙互璁や负鏄疌璇█绋嬪簭鐨勬墽琛岃捣鐐广傛洿鍑嗙‘鐨勮娉曪紝搴旇鏄疌璇█浠庡叆鍙e嚱鏁板紑濮嬫墽琛屻傚洜涓猴紝铏界劧澶у鏁扮紪璇戝櫒閮芥槸浠ain涓鸿捣濮嬫墽琛屽嚱鏁帮紝涔熷氨鏄叆鍙e嚱鏁帮紝浣嗚繕鏄湁渚嬪鐨勶紝姣斿锛1銆佸浜庢敮鎸乁NICODE WIN32 搴旂敤绋嬪簭锛屽叾绋嬪簭鍏ュ彛涓簍main锛2銆佸浜巜indows ...
  • c璇█鎵ц绋嬪簭鐨寮濮嬫墽琛岀偣
    绛旓細main鍑芥暟銆傚湪C璇█涓紝绋嬪簭鐨勬墽琛岃捣鐐规槸main鍑芥暟锛宮ain鍑芥暟鏄瘡涓狢璇█绋嬪簭鐨勪竴閮ㄥ垎锛屽畠鏄▼搴忕殑鍏ュ彛鐐癸紝杩愯涓涓狢璇█绋嬪簭鏃讹紝鎿嶄綔绯荤粺浼氳皟鐢╩ain鍑芥暟锛岀劧鍚庝粠main鍑芥暟寮濮嬫墽琛岀▼搴忋
  • c璇█鎵ц绋嬪簭鐨寮濮嬫墽琛岀偣
    绛旓細涓鑸潵璇达紝C璇█閮芥槸浠main鍑芥暟寮濮嬭繍琛岀殑锛岃繖涓猰ain鍑芥暟鍙互璁や负鏄疌璇█绋嬪簭鐨勬墽琛岃捣鐐广傛洿鍑嗙‘鐨勮娉曪紝搴旇鏄疌璇█浠庡叆鍙e嚱鏁板紑濮嬫墽琛屻傚浜庡綋鍓嶆柊鐗坓cc锛屼粎鏀寔-e銆侰璇█鏄竴闂ㄩ潰鍚戣繃绋嬬殑銆佹娊璞″寲鐨勯氱敤绋嬪簭璁捐璇█锛屽箍娉涘簲鐢ㄤ簬搴曞眰寮鍙戙侰璇█鑳戒互绠鏄撶殑鏂瑰紡缂栬瘧銆佸鐞嗕綆绾у瓨鍌ㄥ櫒銆侰璇█鏄粎浜х敓灏戦噺...
  • 鍦涓涓狢璇█绋嬪簭鐨勬墽琛屾槸浠()銆侫)鏈▼搴忕殑main鍑芥暟寮濮,鍒癿ain鍑芥暟缁 ...
    绛旓細C璇█鏄潰鍚戣繃绋嬬殑锛岃繖鎰忓懗鐫绋嬪簭鍛樻洿澶氬湴鍏虫敞鎺у埗娴佺▼鍜屾暟鎹鐞嗭紝鑰岄潪瀵硅薄鐨勫皝瑁呭拰缁ф壙銆傚畠浣跨敤鐨勭紪璇戝櫒绉嶇被涓板瘜锛屽寘鎷珻lang銆丟CC銆乀urboC绛夈傛荤殑鏉ヨ锛孋璇█鐨勬墽琛岃捣鐐瑰拰缁堢偣閮藉洿缁曠潃main鍑芥暟灞曞紑锛岃繖鍐冲畾浜嗙▼搴忕殑璧风偣鍜岀粨鏉熸爣蹇楋紝鏄悊瑙璇█绋嬪簭杩愯鐨勫叧閿绱犮
  • C璇煶鐨勯姹傝В绛
    绛旓細1锛 涓涓狢璇█绋嬪簭鐨勬墽琛岃捣鐐规槸___main鍑芥暟___2锛庤int x=3,y=5; 鍒欐墽琛宲rintf("%d\n",x/y);鍚庤緭鍑篲0___3锛巔rintf(鈥淺n\n鈥)鐨勫姛鑳芥槸鍦ㄥ睆骞曚笂杈撳嚭___1___涓柊琛 4. C璇█鐨勬爣璇嗙鍙兘鐢变笁绉嶅瓧绗︾粍鎴愶紝瀹冧滑鏄瓧姣嶃乢_涓嬪垝绾縚__鍜屾暟瀛 5. 缁撴瀯鍖栬璁′腑鐨勪笁绉嶅熀鏈粨鏋勬槸椤哄簭缁撴瀯...
  • c璇█绋嬪簭鐢浠涔缁勬垚
    绛旓細璇ョ▼搴忕敱涓涓猰ain涓诲嚱鏁板姞鑻ュ共涓叾浠栧嚱鏁扮粍鎴愩傚嚱鏁版槸C绋嬪簭鐨勫熀鏈崟浣嶏紝琚皟鐢ㄧ殑鍑芥暟鍙互鏄郴缁熸彁渚涚殑搴撳嚱鏁帮紝涔熷彲浠ユ槸鐢ㄦ埛鏍规嵁闇瑕佽嚜宸卞畾涔夌殑鍑芥暟銆main鍑芥暟鏄▼搴忔墽琛岀殑璧风偣锛宮ain鏄浉瀵规潵璇寸殑锛屽鍚岄煶瀛︾悊璁轰箣涓昏皟浜庢硾闊筹紝娉涢煶鍗崇▼搴忎腑鐨勯櫎main涔嬪鐨勫叾浠栧嚱鏁帮紝杩庡悎浜轰滑鐨勬濊冩柟寮忚岀敓鎴愮殑鑰岄潪蹇呭畾鐨勬ā寮...
  • 扩展阅读:c语言最后怎么执行 ... c++简单程序实例 ... c语言程序执行的入口 ... 一个c语言的源程序中 ... c语言程序怎么执行 ... c语言必背100代码 ... 程序代码 ... c语言程序的执行步骤 ... 一个c程序的执行是从什么 ...

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