2

重複の可能性:
C の関数ポインターはどのように機能しますか?

C での関数ポインターの使用法を見てきました。C の舞台裏でそれらがどのように正確に実装されているのか疑問に思っていましたか? 関数命令が保存されている場所を指しているだけですか?そうでなければ、誰かがどのように機能するかを図式的に示す/詳しく説明する(またはオンラインリソースを指す)ことができれば、私は感謝しますか?

前もって感謝します !

編集 : この質問は、「C の関数ポインターはどのように機能しますか?」で説明されているように、関数ポインターの使用法に関するものではありませんでした。これは、それらがどのように実装されているかの内部の仕組みについてです。

4

2 に答える 2

1

ウィキペディアの記事 ( http://en.wikipedia.org/wiki/Function_pointer ) では、次のように完全に説明されています。「関数ポインターは、データ値を参照する代わりに、メモリ内の実行可能コードを指します。逆参照すると、関数ポインターを使用して、通常の関数呼び出しと同じように、それが指す関数を呼び出し、引数を渡すことができます。」

于 2012-12-04T22:35:42.937 に答える
1

はい、データへのポインターと同じように、関数の場所への単なるポインターです。ただし、CPU アーキテクチャによっては、関数ポインターが使用されている場合、関数はデータとは異なる種類のメモリに格納できるため、実際のアセンブリはまったく異なる場合があります。

于 2012-12-04T22:34:05.707 に答える