0

プロシージャの起動時間は、関数呼び出しの準備が実行されるコンパイル時間の一部ですか?

それとも、関数が実際に呼び出されるのは実行時の一部ですか?

(確かではありませんが、私は2番目のオプションにかかっています)

4

1 に答える 1

1

おそらく、関数の呼び出し方法について言及しています。引数がどのように渡され、コピーされるかなどを知りたいと思います。

各関数には、関数の呼び出し方法を指定する「呼び出し規約」があります。これは、プログラムが引数をスタックに配置し、命令の現在の位置を呼び出し元の関数に保存し、呼び出された関数の最初の命令にジャンプするプロセスです。さらに、呼び出し規約は、呼び出し元の関数に戻る方法と戻り値を保存する方法を指定します。これがどのように行われるかはプラットフォーム固有であり、特定の関数で使用されている呼び出し規約に依存します。

呼び出し規則に基づいて、関数を呼び出すための正しい手順を実行するコードがコンパイラによって出力されます。このコードは、呼び出しを実行するために実行時に実行されます。x86 の呼び出し規約の詳細については、ウィキペディアのx86 呼び出し規約を参照してください。

于 2011-05-03T13:38:06.237 に答える