回覆列表
  • 1 # ActionSpeakLouder

    linux下程式執行完返回0代表程式正常結束,其實你可以寫一個簡單的main函式測試一下,一個返回0 一個返回1。執行完程式執行一個linux命令即可知道上一個程式的退出狀態。

  • 2 # TonyDeng

    其實這不是什麼好不好的習慣,酸秀才吹毛求疵而已。這個函式的返回值,跟普通函式一樣,是反饋給呼叫者的,告知執行結果,對main()函式而言,呼叫者是作業系統,就把返回值留在呼叫棧中,讓作業系統取用。返回值的意義本質上是任意的,這個函式返回值的意義是errorcode,表示錯誤程式碼,C程式設計師一般約定,用零表示無錯誤,其他非零值代表不同的錯誤程式碼,不同的作業系統有不同的一套錯誤程式碼表(對應作業系統級別的錯誤資訊),有一個劃定的值域用於程式自定義錯誤程式碼,其意義由程式作者維護(這種程式碼給作業系統是沒用的,它也不知道代表什麼,派何用場,寫指令碼的時候才有用)。一般地程式執行沒問題,就寫返回零,其實你不寫,編譯器也自動在編譯程式碼中返回零。C程式與作業系統結合緊密,經常在API中使用作業系統本身的errorcode,僅此而已。一個函式而已,不返回任何值的void函式很正常,不存在什麼錯誤,我不告訴作業系統這個值代表什麼,你拿到也沒意義,比如我可以約定這個返回值是邏輯型,返回零表示假等於不成功,意義完全相反,也沒問題——事實上C程式中太多errorcode和邏輯混淆的狀況,非常煩人。最早期的C語言,函式是沒有void的,預設返回int,才有這個奇葩習慣。拿這玩意抬高到良好不良好的程度説,就是酸腐。

  • 中秋節和大豐收的關聯?
  • 你說那些籃球明星為什麼是光頭?