k 發問時間: 電腦與網際網路程式設計 · 1 0 年前

c++程式的 int main(void) 問題

#include<stdio.h>

#include<stdlib.h>

int main(void)

請問一下上面的 int main(void) 是什麼意思?和什麼時候用?

我看書上的範例有的有用、有的沒用是為什麼?

4 個解答

評分
  • 匿名使用者
    1 0 年前
    最佳解答

    對於C++來說 ,

    函數的寫法:

    型態 函數名稱(傳入的參數值)

    {

    //函數要執行的工作..

    }

    因此

    int main(void)

    {

    //執行的工作

    return 0;

    }

    這小段程式碼,就是在宣告一個函數.

    int是回傳的型態 , main是函數名稱 , void表示此函數沒有任何參數傳入.

    實際上main函數對C++/C而言是個特殊的函數 ,它代表著程式的開始執行的位置.

    可以想一下,當電腦一開機時會先執行作業系統,開機完之後假設使用者要求作業系統執行某一隻程式A,則作業系統會呼叫程式A的 main() 函數.

    在上面的例子傳入參數為 void , 表示作業系統不會有額外的指示給程式A ; 實際上可以設計讓作業系統傳參數給程式A, 想像你請朋友做一件事 ,你可以要求他要怎麼做,或是做什麼(傳參數告訴他),當然如果彼此默契很好,可以不用說對方就之到要做什麼也行(void,不傳任何參數).

    而回傳值則是當程式執行完畢時,向作業系統報告說我執行完了!

    大多數的作業系統而言,若程式回傳0表示該程式正常執行完畢,若回傳其他的值則可能有錯誤或是其他狀況發生. 就好像朋友做完事情後, 應該會告訴你事情處理得如何, 如果搞砸了才知道要如何做後續處理.

    參考資料: 我的腦袋瓜
  • 意見者: adam! ( 實習生 1 級 )

    擅長領域: C&C++ | 防毒防駭

    發表時間: 2007-03-16 00:44:17

    說的很棒

  • 1 0 年前

    囘傳值當初的設計是給批次檔用的

    假如您的執行檔叫Test.exe

    當您是用批次檔去啓動 Test.exe時, 她的 int return 值就會存到系統的ERRORLEVEL變數中

    例如:囘傳值為0或 1時才有處理,其他則不處理

    @echo off

    Test.exe

    @if "%ERRORLEVEL%" == "0" goto good

    @if "%ERRORLEVEL%" == "1" goto fail

    goto end

    :fail

    echo Execution Failed

    goto end

    :good

    echo Execution Succeded

    :end

    echo return value = %ERRORLEVEL%

  • adam!
    Lv 5
    1 0 年前

    先別管為啥

    你只要每次寫程式都打就好

    大約在兩個月左右

    學到函數

    你就會學到意義。

    先在先別鑽牛角尖

    聽到一堆聽不懂的,反而會降低學習品質喔!

還有問題?馬上發問,尋求解答。