理解OpenCV中的宏定义 CVAPI(函数返回类型)(转载)
2017-05-28 19:22
225 查看
读代码时看到语句 CVAPI(IplImage*) cvCreateImage( CvSize size, int depth, int channels ); 遂想了解下这个CVAPI到底是怎么回事!
#define
CVAPI(rettype)
CV_EXTERN_C
CV_EXPORTS rettype
CV_CDECL
CV_EXTERN_C 的宏定义是#define CV_EXTERN_C extern "C"
extern "C"的主要作用就是为了能够正确实现C++代码调用其他C语言代码。加上extern "C"后,会指示编译器这部分代码按C语言的进行编译,而不是C++的
CV_EXPORTS 的宏定义为# define CV_EXPORTS __declspec(dllexport) 详细解释见博文 http://blog.csdn.net/wenhao_ir/article/details/51489091
可见CV_EXPORTS暂时无实质性内容,只是一个预留宏定义,是为了OpenCV在编程上的可扩展性预留的
rettype是宏定义的参数了,这里放具体的类型,表示函数的返回类型!
CV_CDECL的宏定义是#define CV_CDECL __cdecl __cdecl是VC的关键词,在编译器以蓝色显示 ,它表示的意思如下:
__cdecl 是C Declaration的缩写(declaration,声明),表示C语言默认的函数调用方法:所有参数从右到左依次入栈,这些参数由调用者清除,称为手动清栈。被调用函数不会要求调用者传递多少参数,调用者传递过多或者过少的参数,甚至完全不同的参数都不会产生编译阶段的错误。
平时我们在定义函数时是没写上这个声明的,说明已经默认是这个参数或在其它地方声明了!
-------------------------------------------
转载出处:http://blog.csdn.net/wenhao_ir/article/details/51460547
#define
CVAPI(rettype)
CV_EXTERN_C
CV_EXPORTS rettype
CV_CDECL
CV_EXTERN_C 的宏定义是#define CV_EXTERN_C extern "C"
extern "C"的主要作用就是为了能够正确实现C++代码调用其他C语言代码。加上extern "C"后,会指示编译器这部分代码按C语言的进行编译,而不是C++的
CV_EXPORTS 的宏定义为# define CV_EXPORTS __declspec(dllexport) 详细解释见博文 http://blog.csdn.net/wenhao_ir/article/details/51489091
可见CV_EXPORTS暂时无实质性内容,只是一个预留宏定义,是为了OpenCV在编程上的可扩展性预留的
rettype是宏定义的参数了,这里放具体的类型,表示函数的返回类型!
CV_CDECL的宏定义是#define CV_CDECL __cdecl __cdecl是VC的关键词,在编译器以蓝色显示 ,它表示的意思如下:
__cdecl 是C Declaration的缩写(declaration,声明),表示C语言默认的函数调用方法:所有参数从右到左依次入栈,这些参数由调用者清除,称为手动清栈。被调用函数不会要求调用者传递多少参数,调用者传递过多或者过少的参数,甚至完全不同的参数都不会产生编译阶段的错误。
平时我们在定义函数时是没写上这个声明的,说明已经默认是这个参数或在其它地方声明了!
-------------------------------------------
转载出处:http://blog.csdn.net/wenhao_ir/article/details/51460547
相关文章推荐
- 理解OpenCV中的宏定义 CVAPI(函数返回类型)
- 对引用和指针使用以及函数返回引用和指针类型的理解
- 对引用和指针使用以及函数返回引用和指针类型的理解
- 对引用和指针使用以及函数返回引用和指针类型的理解
- C++11 理解 (二十八) 之 用于计算函数对象返回类型的统一方法
- 对引用和指针使用以及函数返回引用和指针类型的理解
- 宏定义函数指针类型&函数返回左值类值 1。宏定义不分配内存,变量定义分配内存。 2。宏名和参数的括号间不能有空格 3。宏替换只作替换,不做计算,不做表达式求解 //下面是正确的标准的写法 typedef int(FUNC1)(int in); ty
- 使用函数登录,并返回用户类型
- 【转载】理解C#值类型与引用类型
- 函数返回类型为指针的时候的注意事项
- 函数的返回值的类型是引用类型和非引用类型的区别
- 用面向对象思维理解.NET委托:函数是对象、委托是函数对象的类型
- 体验和理解函数模板-----求最大值(默认函数类型)
- 【转载】让c++ 函数返回一个数组
- Python学习笔记:python3中的range()函数的返回对象类型
- 转载:vmware 网络设置三:理解虚拟网络的类型
- opencv 鼠标响应机制 onMouse()函数的理解
- 【C语言】编写一个函数,传入a,b两个int类型的变量,返回两个值的最大公约数。(辗转相除法和常规求法)
- 将“引用”作为函数返回值类型的格式、好处和需要遵守的规则?
- 函数返回引用类型的值