TI中文支持网
TI专业的中文技术问题咨询交流网站

在跟踪代码中有个地方不太明白,求各位大佬指教

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);

我的疑问都写在代码中,请求各位大佬不吝指教

Chris Meng:

user6231379clusterTrackerInst    =   (RADARDEMO_clusterTracker_handle *) handle;//这里有疑问?上面已经用结构体RADARDEMO_clusterTracker_handle定义了指针,这里为什么又要重复,是为了把handle这个指针类型由void转为结构体类型了吗?

user6231379 clusterTrackerInst->pendingIndication = (uint16_t *) &clusterTrackerInst->scratchPad[index];//这里疑问??scratchPad是结构体中的一个char类型指针,这里为什么要类型转换后,要令指针pendingIndication等于scratchPad,另外想问下指针后面加【】是干嘛的?

赋值时,等式左右两边的类型需要一致。

user6231379  for (i = 0; i < RADARDEMO_CT_MAX_NUM_TRACKER; i++)        clusterTrackerInst->pendingIndication[i] = 1;//这里的疑问是指针pendingIndication后面的【】,指针类型为uint16_t,这里要循环64次??

这个代码时初始化pendingIndication参数,循环次数时可能最大的tracker数。

user6231379:

回复 Chris Meng:

想问下这里指针后面加[]是ps[i] 等价于 *(ps+i)吗?

Chris Meng:

回复 user6231379:

你好,

网上有很多资源,建议多搜索。
www.uucan.cn/zs-sywfawdff.html

赞(0)
未经允许不得转载:TI中文支持网 » 在跟踪代码中有个地方不太明白,求各位大佬指教
分享到: 更多 (0)