c語言編譯系統默認函數
A. C語言 主函數 main 到底是什麼
在DOS的tc編輯器中,主函數main的類型可以省略,系統默認它為int類型。這個類型表示函數的返回值類型。C語言中有許多函數,每個函數都有自己的返回類型和返回值。而主函數main也屬於函數的一種,因此也有類型和返回值。不過,由於用戶通常不需要特別關注這些細節,所以這個類型可以省略,不標示也可以。
然而,在像VC6.0這樣的編輯器中,主函數main的類型是不能省略的,必須明確標出。如果省略了類型,編譯器會報錯。這主要是因為不同編譯器對於主函數main的類型處理有所不同,為了確保程序的可移植性和兼容性,建議在編寫時明確寫出主函數main的類型。
需要注意的是,盡管在tc編輯器中可以省略main函數的類型,但這並不意味著這是一個好的編程習慣。明確寫出主函數main的類型有助於提高代碼的可讀性和可維護性,尤其是在團隊協作開發時,明確的類型定義可以減少誤解和錯誤。
此外,無論是tc編輯器還是VC6.0,主函數main的返回值類型通常被定義為int,這表示main函數會返回一個整數值給調用者。這個返回值通常用於表示程序的執行結果,例如0表示程序正常結束,非0值則表示程序執行過程中出現錯誤。
總之,盡管在某些編輯器中可以省略main函數的類型,但在編寫代碼時,明確寫出main函數的類型是一個良好的編程實踐,可以提高代碼的質量和可維護性。
B. C語言中如果未說明函數的類型,則系統默認的函數類型是
如果未說明,默認為int類型。
C. 專家來解決main與void main
考慮到main函數的特殊性,lz不明白這個問題可以理解。
main()是省略了返回值類型,C語言會默認認為成main的類型為int,在main()的函數體內要返回一個值,如return 0;
而void main()的返回值是void類型,也就是說沒有返回值。這樣在main()的函數體內你就不用寫return 0;或者return 1;之類的返回語句。
在一個程序中,可以說你看不出兩者的差別,因為main()是C語言的入口點,入口點如果返回了程序也就結束了,因此C語言的這個特性似乎沒用。可沒用的話,C語言的設計者為什麼要這么做呢?!肯定有用。
沒錯,前面我說的是在一個程序中,它似乎沒用。可如果一個程序prog2調用另一個程序prog1的話(這里指的是prog2直接調用prog1編譯好的可執行文件),那麼這個特性就有用了。因為prog2要知道prog1運行之後的狀態。比如你用C寫了一個刪除文件的程序(暫且命名為delf),然後用另一個程序去調用delf,那麼調用結果怎麼樣啊?這個文件是否刪掉了?這是int main()就會派上用場了。C語言中默認的main如果返回為0,那麼這個程序調用就成功了,其他值,則為不同的錯誤代碼。在你的delf程序中,如果那個文件刪除成功,那麼就在int main()中返回0,其他調用delf的程序就知道,噢,這個操作成功了。
在unix/linux系統中的很多命令都是通過這種方式獲得運行結果的。
關於譚浩強的書,我想不用多說,發行量說明了一切。畢竟第二版在編寫的時候還比較早,而第三版根據很多現在的需要進行了改寫,內容當然會好些。鑒於lz是初學C,其實大可不必在這個問題上浪費太多時間,當你有了更多的項目經驗,對這個問題會有更深刻的理解。
上面我已經給出了main()、int main()和void main()的區別,但建議lz忽略這個差別,認為成二者一樣,先把C的其他部分學好。至於只寫成main(),我並不推薦,就算編譯器通過了,這種編程的風格也太不嚴謹,不利於好的習慣的養成。
