RADARDEMO_clusterTracker_errorCode RADARDEMO_clusterTracker_run(
IN void * handle,
IN RADARDEMO_tracker_input * input,
IN float dt,
OUT RADARDEMO_tracker_output * output)
{
uint32_t index;
uint16_t nTrack, i;
RADARDEMO_clusterTracker_handle *clusterTrackerInst;//RADARDEMO_clusterTracker_handle是一个结构体
RADARDEMO_clusterTracker_errorCode errorCode = RADARDEMO_CLUSTERTRACKER_NO_ERROR;
clusterTrackerInst = (RADARDEMO_clusterTracker_handle *) handle;//这里有疑问?上面已经用结构体RADARDEMO_clusterTracker_handle定义了指针,这里为什么又要重复,是为了把handle这个指针类型由void转为结构体类型了吗?
clusterTrackerInst->numOfInputMeasure = input->totalNumInput;
。............中间略去了一些无关代码
// Create measurements initialize pendingIndication, associationList, numAssoc and distance matrix
index = 0;
clusterTrackerInst->pendingIndication = (uint16_t *) &clusterTrackerInst->scratchPad[index];//这里疑问??scratchPad是结构体中的一个char类型指针,这里为什么要类型转换后,要令指针pendingIndication等于scratchPad,另外想问下指针后面加【】是干嘛的?
for (i = 0; i < RADARDEMO_CT_MAX_NUM_TRACKER; i++)
clusterTrackerInst->pendingIndication[i] = 1;//这里的疑问是指针pendingIndication后面的【】,指针类型为uint16_t,这里要循环64次??
index += RADARDEMO_CT_MAX_NUM_TRACKER * sizeof(uint16_t);
clusterTrackerInst->associatedList = (int16_t *) &clusterTrackerInst->scratchPad[index];
for (i = 0; i < RADARDEMO_CT_MAX_NUM_TRACKER * RADARDEMO_CT_MAX_NUM_ASSOC; i++)
clusterTrackerInst->associatedList[i] = -1;
index += RADARDEMO_CT_MAX_NUM_TRACKER * RADARDEMO_CT_MAX_NUM_ASSOC * sizeof(int16_t);
我的疑问都写在代码中,请求各位大佬不吝指教