首頁 > 後端開發 > C++ > `main()` 真的是 C 程式中執行的第一個程式碼嗎?

`main()` 真的是 C 程式中執行的第一個程式碼嗎?

Mary-Kate Olsen
發布: 2024-12-07 05:33:15
原創
909 人瀏覽過

Is `main()` Really the First Code Executed in a C   Program?

Main() 真的是 C 程式的啟動嗎?

C 標準將main() 定義為C 程式的唯一起點程式:「程式應包含一個名為main 的全域函數,它是程式的指定開始。」

但是,程式碼下面似乎與這個定義相矛盾:

int square(int i) { return i*i; }
int user_main()
{ 
    for ( int i = 0 ; i < 10 ; ++i )
           std::cout << square(i) << endl;
    return 0;
}
int main_ret= user_main();
int main() 
{
        return main_ret;
}
登入後複製

令人驚訝的是,這段程式碼在進入main() 之前執行了user_main() 函數,而 main() 應該是初始執行點。此外,程式碼編譯時不會出現錯誤或警告。

定義程式的「開始」

正確解釋術語「程式的開始」至關重要。標準將開始定義為程式被認為開始的點,不一定是在第一個程式碼執行時。

在此範例中,程式以 main() 開始,但這並不表示沒有程式碼提前執行。實際上,大量程式碼通常在 main() 之前執行,尤其是在初始化期間。

標準合規性

儘管程式碼的執行順序不尋常,但它完全遵循標準。根據定義,程式的開始是main(),儘管user_main()執行得更早。執行順序不會改變程式的起始被定義為 main() 函數的事實。

因此,給定的程式碼是符合標準的,而且它不會使標準對開始的定義無效。程式作為 main()。

以上是`main()` 真的是 C 程式中執行的第一個程式碼嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板