在這篇文章中我們將學習“c程序的執行開始和結束應該怎么寫”的相關知識,下文有詳細的介紹及實例,步驟過程清晰,簡單易懂,小編覺得挺不錯的,有需要的朋友可以借鑒參考,希望大家閱讀完這篇能有所獲。
C程序的入口是main函數,一般來說只要是正常運行結束的都是從main函數的第一句話開始,最后一句結束。
例如:
int main()//程序開始 { printf("Hello!\n"); return 0;//程序結束,返回值 }
但如果程序執行到中間遇到 (main函數里的) exit(不管是main函數還是子函數中) 等也是會結束程序的。
C語言main函數的寫法
main函數是C程序的入口函數,即程序的執行是從main函數開始,對其他函數的調動也是直接或間接地在main函數中被調用。那么main函數又是被誰調用呢?答案是操作系統。C語言發展至今,對main函數有多種不同的寫法,下面就來探究一下各種不同的寫法。注:測試環境為 17.10,GCC版本為7.2.0。
NO.1
main(){}
例:
#includemain(){ printf("Hello World\n"); }
NO.2
void main(){}
例:
#includevoid main(){ printf("Hello World\n"); }
NO.3
int main(){}
例:
#includeint main(){ printf("Hello World\n"); return 0; }
NO.4
int main(void){}
例:
#includeint main(void){ printf("Hello World\n"); return 0; }
NO.5
int main(int argc,char *argv[]){}
例:
#includeint main(int argc,char *argv[]){ printf("Hello World\n"); return 0; }
NO.6
int main(int argc,char **argv){}
例:
#includeint main(int argc,char **argv){ printf("Hello World\n"); return 0; }
從上面的測試來看,寫法1在C90標準下可以正常編譯,而在C99和C11標準下會拋出一個警告(不寫返回值,默認的返回值為int,也就相當于寫法1和寫法3等價)。寫法2-6在C90、C99、C11標準下均能正常編譯。在這么多寫法中,到底哪一些才是main函數的標準寫法?于是查閱了C標準文檔對main函數的規范寫法,見下圖:
從標準文檔中可以看出,寫法4、5、6才是main函數的規范寫法。寫法5與寫法6是等價的。那為什么又會有寫法1、2、3呢?那是因為從1972年C語言被設計出來到C90標準發布這段時間,對C語言不同的實現就導致了對main函數的差異性。強烈不推薦寫法2,因為main函數是被操作系統調用的,操作系統會根據main函數的返回值來判斷程序的正確執行與否,如果返回void,那代表的是什么狀態呢?而且一些編譯器支持這種寫法,一些編譯器不支持,所有的標準并未認可這種寫法。對于寫法1和寫法3還勉強能夠接受,不過也不建議這樣寫,最好還是按照標準寫法來寫。為什么要按照標準寫法來寫?那是因為為了讓C程序具有更好的移植性。寫法5與寫法6是等價的退出程序用c怎么寫,第一個參數代表main函數參數的個數,第二個參數用指針分別指向這些參數。argv[0]代表程序名,argv[1]到argv[argc-1]代表程序參數。下面再看看main函數的返回值問題,見下圖
從圖中可以看出退出程序用c怎么寫,如果main函數的返回值是int類型的兼容類型,從main函數返回后的值與exit一起相當于執行了exit xxx。xxx代表從main函數返回后的值。如果忘記寫了語句,當執行到main函數體的右大括號},會返回默認值0。返回0代表程序執行成功,程序退出。如果main函數的返回類型不是int類型的兼容類型,程序返回給操作系統的狀態將會不明確。
關于“c程序的執行開始和結束應該怎么寫”的內容就介紹到這,感謝各位的閱讀,相信大家對c程序的執行開始和結束應該怎么寫已經有了進一步的了解。大家如果還想學習更多知識,歡迎關注群英網絡,小編將為大家輸出更多高質量的實用文章!