求真百科歡迎當事人提供第一手真實資料,洗刷冤屈,終結網路霸凌。

Main函數檢視原始碼討論檢視歷史

事實揭露 揭密真相
前往: 導覽搜尋
  Main函數

main函數,又稱主函數,是程序執行的起點,main是相對來說的,如同音學理論之主調於泛音,泛音即程序中的除main之外的其他函數,迎合人們的思考方式而生成的而非必定的模式。有主有次,執行起來條清縷析,既可將程序模塊化又實現了一個閉合的整體。

簡介

程序執行總是從main函數開始,如果有有其他函數,則完成對其他函數的調用後再返回到主函數,最後由main函數結束整個程序。在執行程序時,由系統調用main函數 。main 函數是在程序啟動中完成對具有靜態存儲期的非局部對象的初始化之後被調用的。它是程序在有宿主 (hosted)環境(亦即有操作系統)中所指定的入口點。自立程序(啟動加載器,操作系統內核,等等)的入口點則是由實現定義的。主函數的兩個形參形式中的形參,允許從執行環境中傳遞任意的多字節字符串(它們通常被稱為命令行參數),各個指針 argv[1] .. argv[argc-1] 指向每個這些字符串的第一個字符。argv 是指向一個表示用於執行該程序自身的名字的空結尾多字節字符串(或者當執行環境不支持時,為空字符串 "")的開頭字符的指針。這些字符串是可以改動的,雖然對它們的改動並不會被傳回給執行環境:比如可以用 std::strtok 來使用它們。由 argv 所指向的數組的大小至少為 argc+1,其最後一個元素 argv[argc] 保證為一個空指針

評價

模塊化程序設計方法是把整個程序劃分為若干功能較為單一的程序模塊,然後分別予以實現,最後再把所有的程序模塊像搭積木一樣裝配起來。利用函數可以實現程序的模塊化,可以大大地減輕編碼工作量。在函數內部或複合語句塊內部定義的 auto 類型變量稱為局部變量。局部變量的作用域從該局部變量定義的位置開始到本函數或複合語句結束處。局部變量的生存期較短暫。當局部變量所在的函數被調用時,局部變量內存空間被分配,函數調用結束後,局部變量內存空間被釋放。函數的形參和實參均屬於局部變量,調用函數時,形參內存空間被分配。函數調用結束後,形參內存空間被釋放。C語言函數參數傳遞可分為三種情況:簡單變量作為函數參數、數組名作為函數參數以及指針作為函數參數在C和C++中,不接收任何參數也不返回任何信息的函數原型為「void foo(void);」。可能正是因為這個,所以很多人都誤認為如果不需要程序返回值時可以把main函數定義成void main(void) 或void main()。然而這是錯誤的!main函數的返回值應該定義為int類型,C和C++標準中都是這樣規定的。雖然在一些編譯器中,void main可以通過編譯(如vc6),但並非所有編譯器都支持void main,因為標準中從來沒有定義過void main。g++3.2、dev C++等環境中如果main函數的返回值不是int類型,根本無法通過編譯。而gcc3.2則會發出警告。所以,如果你想你的程序擁有很好的可移植性,請一定要用int main。[1]

參考文獻

  1. Main函數搜狗