悪いタイトルには申し訳ありませんが、「私はこのコードを理解していません。変更を提案してください。Cは2つの丸い角かっこで機能しますか?
私はthisコードを読んでいます。私はこの1つのようにC関数を見たことがない:
static void
VL_XCAT(_vl_vlad_encode_, SFX)
(TYPE * enc,
TYPE const * means, vl_size dimension, vl_size numClusters,
TYPE const * data, vl_size numData,
TYPE const * assignments,
int flags)
{
// function body
}
は、特に私は(_vl_vlad_encode_, SFX)
で混乱しています。知っている限り、私が見たすべての関数ヘッダーには1組の "丸括弧"(関数のパラメーター)しかありませんが、ここには2つのペアがあります。
最初のものは何を意味していますか?私はこれが後で_vl_vlad_encode_f
と_vl_vlad_encode_d
と呼ばれ、ライブラリコードの他の場所には表示されませんが、どのように接続されているのか分かりません。
おそらく 'VL_XCAT'はマクロですか?それとも、関数ポインタを返す関数ですか? –
'VL_XCAT'は、2つの入力パラメータを連結しているだけで[マクロ](https://github.com/vlfeat/vlfeat/blob/f363f3abf9e55cb117fdbdcdfe44b95ec838ca5f/vl/host.h#L112)です。 – Groo