TI中文支持网
TI专业的中文技术问题搜集分享网站

看Ti的代码,怎么感觉和一般的C语言不太一样,比如下面这个

void    * RADARDEMO_clusterTracker_create(
//上面这里不知道为什么进行函数定义时,要加*号???
                            IN  RADARDEMO_clusterTracker_config * moduleConfig,
                            OUT RADARDEMO_clusterTracker_errorCode * errorCode)
/*
IN表示输入参数,指针指向的值不会修改;
OUT表示输出参数,指针指向的值会修改
一般的指针类型都是int等常见类型,但这里却不是???
*/

{
    RADARDEMO_clusterTracker_handle * handle;//这里是指针?
    uint16_t index;//定义本地变量index
/*
typedef用来定义关键字或标识符的别名
uint8_t\uint_16_t\uint32_t\uint64_t这些类型的来源:这些数据类型中都带有_t,
_t 表示这些数据类型是通过typedef定义的,
而不是新的数据类型。也就是说,它们其实是我们已知的类型的别名。
ypedef unsigned short int      uint16_t;  

*/
    *errorCode  =   RADARDEMO_CLUSTERTRACKER_NO_ERROR;
//上面这个式子让errorCode这个指针的值所表示的地址的变量赋值为RADARDEMO_CLUSTERTRACKER_NO_ERROR

    handle              =   (RADARDEMO_clusterTracker_handle *) radarOsal_memAlloc((uint8_t) RADARMEMOSAL_HEAPTYPE_LL2, 0, sizeof(RADARDEMO_clusterTracker_handle), 1);
    //上面这个式子不知道是干什么
    if (handle == NULL)
    {
        *errorCode = RADARDEMO_CLUSTERTRACKER_FAIL_ALLOCATE_HANDLE;
        //如果handle这个指针为零值,则
        return (handle);
    }
    // initialized with configuration structure
    handle->trackerAssociationThreshold = moduleConfig->trackerAssociationThreshold;
 
    handle->trackerActiveThreshold = moduleConfig->trackerActiveThreshold;
    handle->trackerForgetThreshold = moduleConfig->trackerForgetThreshold;
    handle->measurementNoiseVariance = moduleConfig->measurementNoiseVariance;
    handle->iirForgetFactor = moduleConfig->iirForgetFactor;
    handle->fxInputScalar = moduleConfig->fxInputScalar;

为什么在函数定义的时候加*号以及参数表里的指针怎么是用RADARDEMO_clusterTracker_config定义

Nancy Wang:

函数名前面带*号表示函数返回的是指针。 RADARDEMO_clusterTracker_config * moduleConfig中RADARDEMO_clusterTracker_config是结构体吗?如果是的话moduleConfig是指向结构体的指针变量。

Chris Meng:

你好,

提问请提供软件的出处,是哪个软件包?那个版本?具体路径。这样方便我们找到相关代码。现在mmWave的软件已经有很多版本了。

关于你的问题,希望下的信息有帮助:

blog.csdn.net/…/43277047

赞(0)
未经允许不得转载:TI中文支持网 » 看Ti的代码,怎么感觉和一般的C语言不太一样,比如下面这个
分享到: 更多 (0)