答えて
両方。また、規約はプラットフォームによって異なります。
x86では、値は通常スタックによって渡されます。 x64では、レジスタを渡すことが推奨されます。
パラメータが多すぎる場合は、スタックによって渡す必要があります。
は、彼らがスタックに渡され、通常の関数呼び出しのために(指摘したように、いくつかのコンパイラは違っそれを行います)一般的にx86 calling conventions
指定されたアーキテクチャでも呼び出し規約に違いがあることにも注意してください。 'cdecl'(Linuxでは?)と' stdcall'(WinAPI?)を比較してください。 –
合意。そのウィキペディアページの一番下には、異なるOSの、そして同じOS内のさまざまな表記法を示すチャートがあります。 – Mysticial
@Mystical良いリンクですが、私はいくつかの追加情報を答えの中に入れなければならないと思います。 –
を参照してください。それは通常、データをスタックに入れる一連のプッシュ命令です。
システムコールのように、アセンブリ命令とレジスタを介してパラメータが渡される特別なケースがあります。ハードウェアの場合、レジスタまたは特定の割り込み信号を介して渡され、結果的にレジスタに書き込まれます。
多数のレジスタを持つアーキテクチャでは、通常、いくつかのRISCや64ビットアーキテクチャなどのレジスタを経由して渡されます。
- 1. 引数はどのようにPythonの関数に渡されますか?
- 2. addEventListenerで渡されたリスナー関数に引数を渡すにはどうすればよいですか?
- 3. 引数はクロージャと関数の間でどのように引き渡されますか?
- 4. C関数のポインタ引数にC++参照を渡すにはどうすればよいですか?
- 5. ある関数から別の関数に引数を渡すにはどうすればよいですか?
- 6. どのようにJavaScriptに別の関数の引数である関数に渡される任意の数の引数を適用しますか?
- 7. 動的生成された引数を関数に渡すにはどうすればよいですか?
- 8. NodeJSコールバック関数に渡される引数を知るにはどうすればよいですか?
- 9. 引数はtox/py.testのテスト関数にどのように渡されますか?
- 10. 関数が引数として渡されたとき、その関数にはどのようにパラメータが渡されますか?
- 11. Cでは、関数に渡されたchar *にはどのようにテキストが設定されますか?
- 12. 引数がCの関数に渡されるかどうかをチェックする方法は?
- 13. C++は別のラムダに関数の引数を渡します
- 14. 通常、ビューポートサイズはどのように引数として渡されますか?
- 15. Cでexecvに渡された引数
- 16. この関数ではどのようにパラメータが渡されますか?
- 17. Cの複数の変数を関数からmainに渡すにはどうすればよいですか?
- 18. 関数を引数に持つ関数をPythonで渡すにはどうすればいいですか?
- 19. aws lambdaではどのようにコールバック関数が渡されますか?
- 20. 関数から引数をTRIGGERの作成に渡すにはどうすればよいですか?
- 21. ngRouteからresolveオブジェクト内の関数に引数を渡すにはどうすればよいですか?
- 22. requestAnimationFrame引数を関数に渡すと、何とか渡されますか?
- 23. C++:関数への参照を別の関数に渡すにはどうすればよいですか?
- 24. 関数はLispでC#のようにオーバーロードされますか?
- 25. 関数内の関数に引数が渡されない
- 26. Cライブラリ関数の引数を渡す引数の検出
- 27. 関数で引数を渡すには?
- 28. MATLABで関数の引数としてベクトルを渡すにはどうすればよいですか?
- 29. MATLABの制約定義関数に引数を渡すにはどうすればよいですか?
- 30. Java 8のラムダストリーム関数に引数を渡すにはどうすればよいですか?
技術的にはこれは実装の詳細なので、各Cコンパイラは関数の引数を渡すことができます。 – jwodder