3

我正在查看 v4l 头文件,发现具有以下结构的函数定义。

#define SOME_VAR

SOME_VAR int somefunc(int i,....);

以这种方式使用#define 指令的目的是什么?

提前致谢

4

1 回答 1

5

您可以指定调用约定或导入/导出标记。例如 Visual Studio,您构建了一个 DLL 并有一些要导出的功能,您可以重用您的头文件。用于编译您使用的导出

#define SOME_VAR __declspec(dllexport)

在您编写的导入站点上

#define SOME_VAR __declspec(dllimport)

在这两种情况下只使用一个包含可以减少代码更新和错误修复过程中可能出现的错误。

在您上面提到的情况下,它似乎是供将来使用的,因为某些平台具有其他调用约定(例如,帕斯卡调用约定)。

Visual Studio 使用类似的存根,即宏 WINAPI,它也是空的。

于 2013-09-09T10:50:53.523 回答