-
1 # C語言小菜
-
2 # DKink
這是最早的C語言編譯器遺留特性,
main()
{}
這麼寫都行。
編譯器會在程式結尾加上return 0
如果是winmain()入口的就不能省略。
-
3 # 使用者59162661
因為C語言之父是這麼規定的,沒有別的原因。
語言這東西,不要想為什麼,它不是自然規律。怎麼設計的,怎麼規定的,就怎麼用。作者說這樣行就是行,這樣不行就是不行。
-
4 # 作死認證委員會
這是返回給作業系統的錯誤程式碼,程式正常結束返回0,你沒加編譯程式會自動加上。不過Windows系統沒有用這個返回介面。在DOS系統中的int 21中斷4C號返回(或int 20中斷)會呼叫這個返回值給作業系統的,在DOS中批處理命令可以利用這個返回值來控制條件判斷和轉移。這都是30多年前玩的東西了,老了老了,過時了。
-
5 # 興至齋
一堆人瞎說,main函式返回值在linux中非常重要。要讓你的程式能給融入系統中,成為指令碼中和其他程式協作的工具,返回值是非常重要的部分,指令碼往往需要根據程式的返回值決定下一步操作。
-
6 # 半杯茶的小酒杯
main函式是我們學習C語言接觸的第一個函式,相信對於下面的程式碼,大家再熟悉不過了。
main函式的返回值首先要明確:在C/C++標準規範中,約定main函式必須要有返回值,返回值必須為int型別。
C99規定:如果 main 函式的末尾沒有return 語句的話,編譯器要自動在生成的目標檔案中加入return 0,表示程式正常退出。
C++98 中定義main函式的用法與C99 中一致,即main函式必須有int型別返回值。如果main函式的末尾沒有return語句,編譯器要自動在生成的目標檔案中加入 return 0; 。
所以在完全遵守C/C++標準的編譯器中,int main不加return 0也是可以的,編譯器會幫助補全這個邏輯。
但是不幸的是不是所有編譯器的所有版本都能夠支援標準規範,為了程式能夠有更好的可移植性,建議不要省略return 0語句。
-
7 # C語言小菜
因為main函式是主函式,在程式執行過程是在迴圈,並不需要返回,也就是沒有返回值並不影響函式的正確性。應該是這樣的,我也不是很理解。
-
8 # DKink
這是最早的C語言編譯器遺留特性,
main()
{}
這麼寫都行。
編譯器會在程式結尾加上return 0
如果是winmain()入口的就不能省略。
-
9 # 使用者59162661
因為C語言之父是這麼規定的,沒有別的原因。
語言這東西,不要想為什麼,它不是自然規律。怎麼設計的,怎麼規定的,就怎麼用。作者說這樣行就是行,這樣不行就是不行。
-
10 # 作死認證委員會
這是返回給作業系統的錯誤程式碼,程式正常結束返回0,你沒加編譯程式會自動加上。不過Windows系統沒有用這個返回介面。在DOS系統中的int 21中斷4C號返回(或int 20中斷)會呼叫這個返回值給作業系統的,在DOS中批處理命令可以利用這個返回值來控制條件判斷和轉移。這都是30多年前玩的東西了,老了老了,過時了。
-
11 # 興至齋
一堆人瞎說,main函式返回值在linux中非常重要。要讓你的程式能給融入系統中,成為指令碼中和其他程式協作的工具,返回值是非常重要的部分,指令碼往往需要根據程式的返回值決定下一步操作。
-
12 # 半杯茶的小酒杯
main函式是我們學習C語言接觸的第一個函式,相信對於下面的程式碼,大家再熟悉不過了。
main函式的返回值首先要明確:在C/C++標準規範中,約定main函式必須要有返回值,返回值必須為int型別。
C99規定:如果 main 函式的末尾沒有return 語句的話,編譯器要自動在生成的目標檔案中加入return 0,表示程式正常退出。
C++98 中定義main函式的用法與C99 中一致,即main函式必須有int型別返回值。如果main函式的末尾沒有return語句,編譯器要自動在生成的目標檔案中加入 return 0; 。
所以在完全遵守C/C++標準的編譯器中,int main不加return 0也是可以的,編譯器會幫助補全這個邏輯。
但是不幸的是不是所有編譯器的所有版本都能夠支援標準規範,為了程式能夠有更好的可移植性,建議不要省略return 0語句。
回覆列表
因為main函式是主函式,在程式執行過程是在迴圈,並不需要返回,也就是沒有返回值並不影響函式的正確性。應該是這樣的,我也不是很理解。