メモリ マップド I/O など、マシンへの低レベル アクセスをサポートしない言語には、そのようなアクセスを提供するライブラリ ルーチンがあることがよくあります (常にではないにしても)。では、言語自体がそのようなアクセスをサポートしていない場合、これらのライブラリ ルーチンはどのように実装されるのでしょうか?
1 に答える
1
それは本当に言語に依存します。一部の言語には、その言語で記述されたメソッドが別の言語(C、アセンブラーなど)で実装できるライブラリプリミティブを呼び出すことができる「相互運用」機能があります。
たとえば、.NET言語にはアンマネージDLL(C、C ++、アセンブラー、またはDLLからのエクスポートされた関数を許可するその他の言語で記述できる)を呼び出すことができるP / Invoke機能がありますが、内部CLRの使用にはCLRDLLの1つに実装されたライブラリプリミティブへの直接呼び出しである「内部呼び出し」修飾子。
于 2011-01-27T09:35:18.187 に答える