나쁜 제목에 대해 유감 스럽지만 "이 코드를 이해하지 못한다"는 점을 제외하고는 더 이상 좋은 생각이 들지 않았습니다. 제발, 수정 제안을 주시기 바랍니다.두 개의 둥근 괄호 쌍이있는 C 함수?
나는 this 코드를 읽습니다. 나는이 같은 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)
에 의해 혼동하고 있습니다. 알아 두어야 할 모든 함수 헤더에는 두 개의 쌍이 있지만 여기에는 하나의 "둥근 괄호 쌍"(함수의 매개 변수) 만 있습니다.
첫 번째 의미는 무엇입니까? 이 코드는 나중에 _vl_vlad_encode_f
및 _vl_vlad_encode_d
과 연결되어 있으며 라이브러리 코드의 다른 곳에서는 나타나지 않지만 연결 방법을 이해할 수 없습니다.
아마도 'VL_XCAT' 매크로입니까? 아니면 함수 포인터를 반환하는 함수입니까? –
'VL_XCAT'은 두 개의 입력 매개 변수를 연결하는 [매크로] (https://github.com/vlfeat/vlfeat/blob/f363f3abf9e55cb117fdbdcdfe44b95ec838ca5f/vl/host.h#L112)입니다. – Groo