功能输入变化

时间:2012-09-23 12:53:56

标签: c++ function opencv input

我正在研究一些openCV文档和标题,并尝试完全理解这里发生了什么。

core_c.h

CVAPI(CvMat*) cvInitMatHeader( CvMat* mat, int rows, int cols,
                          int type, void* data CV_DEFAULT(NULL),
                          int step CV_DEFAULT(CV_AUTOSTEP) );

首先,在cvInitMatHeader

的声明中
void* data CV_DEFAULT(NULL),
int step CV_DEFAULT(CV_AUTOSTEP) 

这种输入变量是什么意思?这与我们通常使用的声明有什么区别,例如

void* data 
int step 

其次, 我阅读了实际上可以使用cvInitMatHeader的教程

double a[] = { 1,  2,  3,  4,
           5,  6,  7,  8,
           9, 10, 11, 12 };
CvMat Ma;
cvInitMatHeader(&Ma, 3, 4, CV_64FC1, a);

输入变量的数量与标题不匹配,我找不到其他函数的重载。

为什么这可行?

1 个答案:

答案 0 :(得分:1)

根据给出的代码,我可以推断出CV_DEFAULT(x)是一个扩展为= x的宏。如果您不熟悉,请参阅default arguments