為什麼C語言要有 int 作為 main 函式的返回值,而不是 void?

時間 2021-05-07 03:18:12

1樓:

main函式的返回值會被shell捕獲,並存到乙個環境變數中。在一些main-loop結構的嵌入式系統中,main的返回值沒太有意義,因為嵌入式系統的軟體不會結束(上電後一直執行)。或者在一些練習性質的程式中,我們也不太關注main函式的返回值。

linux系統有個設計理念:乙個程式只做一件事情,並把它做好。要做一件複雜的事情,可以通過指令碼聯合多個程式來完成。

比如備份資料庫的某個表我們寫了個程式,清空表我們也寫了個程式,如果要求備份成功才能清空,怎麼辦呢?我們可以讓第乙個程式的main在備份成功的情況下返回0,在失敗的情況下返回-1,那麼就可以通過指令碼組合這2個程式來完成我們需要的功能了。

2樓:任衛

你不返回個東西,我怎麼知道你漂亮地把任務完成了。

shell要取這個數驗證呼叫是不是正確完成啊,$? 這個變數,每次呼叫後都會有,若是0就說明剛才的呼叫正常完成了

3樓:你看那銳雯

太難了為什麼呢從c語言標準制定開始都要求main函式返回int,所以現在也不可能用void

有些錯誤程式一直還是用的void,有些編譯器竟然還允許編譯通過,只能說這些編譯器沒有嚴格執行c標準

為什麼C 中的int限制長度,而Python中的int不限長度?

支援向量機 C int是記憶體順序排列的二進位制,在同一計算機編譯器下是定長的,常見的都是4位元組。而python的int是乙個類,不僅僅是一段記憶體資料,還有各種方法,屬性,最關鍵的是,它是變長的,如下所示 struct longobject PyObject VARHEAD說明int Py3中只...

C 類當中為什麼要有private?

麻辣牛肉 為什麼要有C 到了彙編全都是記憶體位址,暫存器和運算,C不就很好了嗎?還是說直接彙編就ok了?什麼虛函式,引用,const,統統不過是語法糖罷了,到了彙編,還不是乙個樣 Ronaldo 因為private就是要在編譯期間限制你這個類成員只能這個類自己用,其他類別用,也別操心。用了就給你報錯...

C 中為什麼要有allocator類?

Wu Jarvis 我是這麼理解的 其實你只要分清vector中resize,reserve的關係就能明白了,resize時,當元素數量 capacity時不但會分配空間,而且會初始化元素 reserve只會做分配空間的事情,不會做初始化,這樣就把分配空間和初始化的事情分開來了,如果不分開的話,那麼...