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