6、C++ Mooc | 宏是什么macro?

当编译c++程序时,首先发生的是预处理器 阶段,实际上是个文本编辑阶段。最终得到的是一个可以送给compiler的文本。

自定义macro:
一般在visual studio 的项目属性中,选择所有配置,在c/c++选项里面选择预处理器,加上自己定义的宏,比如,Apple;

然后在cpp中可以利用,
#ifdef Apple
(do something)
#else
(do something)
#endif
这个时候,Apple已经在预处理器里面定义,所以直接进入第一个()。

还有很多宏,比如__declspec:
是Microsoft-specific attribute that allows you to specify storage-class information,
常用的两个storage-class attributes,是dllimport 和 dllexport,这两个告诉编译器 函数或 object 到底是 import 还是 export from DLL。
实际上就是DLL的客户接口,不需要用.def 文件与dll进行交互。

__declspec(dllimport)是一个 storage-class specifier,告诉编译器 函数或object或数据类型是 定义在外部dll中的。

使用dllexport将符号标记为从DLL导出,并使用dllimport将导出的符号导入到另一个文件中。

猜你喜欢

转载自blog.csdn.net/weixin_42557786/article/details/107629829