这是opencv里面的一个c++编译的库函数,我有几个不理解的地方想请教?
include "_cxcore.h"
ifdef _TMS320C6X
// default
void*
cvAlloc( size_t size)
{
void * ptr;
CV_FUNCNAME( "cvAlloc" );//这个地方是干什么的??cv_funcname是什么函数?
BEGIN
;
ptr = memalign( (CV_MALLOC_ALIGN/8), size);//这个cv_MALLOC_ALIGN是什么?
if( !ptr )
CV_ERROR( CV_StsNoMem, "Out of memory" );
__END__;
return ptr;
}
// default
void
cvFree_( void* ptr)
{
if(ptr)
free(ptr);
}
else // _TMS320C6X
// default
void*
cvAlloc( size_t size)
{
char *ptr, *ptr0;
CV_FUNCNAME( "cvAlloc" );
BEGIN
;
ptr0 = (char*)malloc(
(size_t)(size + CV_MALLOC_ALIGN*((size >= 4096) + 1) + sizeof(char*)));//(size_t)的作用是什么??,这句话的作用是什么??
if( !ptr0 )
return 0;
// align the pointer
ptr = (char*)cvAlignPtr(ptr0 + sizeof(char*) + 1, CV_MALLOC_ALIGN);
*(char**)(ptr - sizeof(char*)) = ptr0;
__END__;
return ptr;
}
// default
void
cvFree_( void* ptr)
{
// Pointer must be aligned by CV_MALLOC_ALIGN
if(ptr)
{
if( ((size_t)ptr & (CV_MALLOC_ALIGN-1)) != 0 )
return CV_BADARG_ERR;
free( *((char**)ptr - 1) );
}
}
endif // _TMS320C6X
/* End of file. */
问题写到了函数里面,希望能得到解答,谢谢!
永遠D魔法師
9 years, 7 months ago