プロが教える店舗&オフィスのセキュリティ対策術

C言語の場合、 main関数より前にスタートアップコードと呼ばれるものが実行されています https://atmarkit.itmedia.co.jp/ait/articles/1703 …
というのは、どういう事でしょうか?教えていただけると助かります。すみません。

gooドクター

A 回答 (3件)

例えば main の argc, argv にコマンドライン引数を


文字列配列にしてセットしたりするのがスタートアップ。

main終了後、終了コードをOSに伝えたりするのも
スタートアップの役割ですね。
    • good
    • 0

>スタートアップコードとは、どういう物なのでしょうか?


記事に書いてある通り
「プログラムが動作するための各種レジスタの設定、ライブラリの初期化など」
でしょう
これらの内「OS等によってすでに行われているもの」は、特段スタートアップコードで処理する必要がない
ということでしょう。

つまり、具体的なスタートアップコードは
 当該PC(OS環境)
 コンパイラが何をもって「プログラムが動作するための環境」としているか
を特定しないと、詳細も特定できないということでは?

同じPC用でもコンパイラが違うとスタートアップコードが違っていて、手元の実行ファイルを見たところ、8KBと50KBと大幅に違っていました。もちろん最適化などの違いもありますが、サイズ違いの主な原因はスタートアップコードの違いですね。
    • good
    • 0

その記事に書いてある通りです。

    • good
    • 2
この回答へのお礼

スタートアップコードとは、どういう物なのでしょうか?その記事ではどこの事でしょうか?教えていただけると助かります。すみません。

お礼日時:2021/08/13 17:28

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

gooドクター

人気Q&Aランキング