2012-09-23 5 views
0

나는 openCV 문서와 헤더를 연구 중이며 여기서 무슨 일이 벌어지고 있는지 완전히 이해하려고합니다. core_c.h에서함수 입력 변형

:

cvInitMatHeader

void* data CV_DEFAULT(NULL), 
int step CV_DEFAULT(CV_AUTOSTEP) 

의 선언,

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

첫 번째 입력 변수의 종류가 무엇을 의미합니까? 이것과 우리가 일반적으로 사용하는 선언의 차이, 같은

void* data 
int step 

두 번째는 무엇인가, 나는 일치 우리가 실제로

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

에 의해 입력 변수의 수를 cvInitMatHeader를 사용할 수있는 튜토리얼을하지 읽기 헤더와 함께, 그리고 다른 함수 오버로드를 찾을 수 없습니다.

왜이 기능이 작동할까요?

+0

매개 변수의 기본값이있는 함수를 알고 있습니까? – Mahesh

답변

1

주어진 코드에서 CV_DEFAULT(x)= x으로 확장되는 매크로임을 추측 할 수 있습니다. 익숙하지 않은 경우 default arguments을 참조하십시오.

+0

+1 기본 인수를 설명하기 위해 Hello World 예제를 작성했습니다. 위키 링크가 더 잘 설명해줍니다. – Mahesh

+0

와우, 고마워요. !!! – StevenR