1. ホーム
  2. c++

[解決済み] イントリンシックとは何ですか?

2023-05-23 05:02:32

質問

これらの言語が何であるか、なぜそれが必要なのかを説明できる人はいますか。もし私が intrinsics を使用する必要があるなら、どのようなアプリケーションを構築しているのでしょうか。

どのように解決するのですか?

通常、quot;intrinsics" は組み込み関数を指します。つまり、ほとんどの標準ライブラリ関数で、ライブラリ内の実際の関数を呼び出す代わりにコンパイラがインライン生成できる/することができます。例えば、次のような呼び出しです。 memset(array1, 10, 0) のような呼び出しは、x86 用に次のようにコンパイルされます。

 mov ecx, 10
 xor eax, eax
 mov edi, offset FLAT:array1
 rep stosb

このようなイントリンシックは純粋に最適化です。quot;Needing" intrinsics は、コンパイラが直接生成できない(または通常は生成しない)コードを生成できるようにするイントリンシックをコンパイラがサポートしている状況である可能性が高いです。たとえば、x86 用の非常に多くのコンパイラーは "MMX Intrinsics" を持っており、実際には MMX 命令の直接表現である "functions" を使用することができます。