[英]Cpp return curiosity
OpenNI中的许多函数都会返回如下:
XN_C_API XnInt32 XN_C_DECL xnVersionCompare (const XnVersion *pVersion1, const XnVersion *pVersion2)
我想现在是XN_C_API和XN_C_DECL。 好奇而已!
它与返回值无关。 不查看源代码,我怀疑在为Windows编译时:
XN_C_API
被定义为__declspec(dllexport)
或__declspec(dllimport)
具体取决于您是编译DLL还是从中导入函数。
XN_C_DECL
被定义为该函数所需的调用约定 (可能是__stdcall
或__cdecl
)
如果不看定义,我猜:
XN_C_API
是C ++编译器的extern "C"
,因此可以从C ++调用C函数。
XN_C_DECL
处理Windows施加的调用约定和导出/导入问题。 那可能是__declspec(ddlexport)
或__declspec(dllimport)
,并且可能包括__stdcall
等,并且可能还担心FAR
等(但可能不再需要了)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.