我正在查看v4l头文件,并找到了具有以下结构的函数定义。
#define SOME_VAR
SOME_VAR int somefunc(int i,....);
以这种方式使用#define指令的目的是什么?
提前致谢
答案 0 :(得分:5)
您可以指定调用约定或导入/导出标记。例如,您构建DLL并具有一些要导出的函数的Visual Studio,您可以重用您的头文件。要编译导出,请使用
#define SOME_VAR __declspec(dllexport)
在您编写的导入网站上
#define SOME_VAR __declspec(dllimport)
在两种情况下仅使用一个include减少了更新过程中可能出现的错误以及代码的错误修复。
在上面提到的情况下,它似乎是为了将来使用,因为某些平台有其他调用约定(例如pascal调用约定)而不是其他。
Visual Studio使用类似的存根,即宏WINAPI,它也是空的。