C++的宏利用include和undef来重复使用

Posted Yofoo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++的宏利用include和undef来重复使用相关的知识,希望对你有一定的参考价值。

如dll导出函数, 需要定义以及QueryInterface, 其中函数有多个, 如果想代码尽量简洁, 只有这个方法

  1. 定义
#define NVIDIA_API_DEF(_fun)	decltype(_fun)		* _##_fun = NULL;
#define NVIDIA_API_USE(_fun)	NVIDIA_API_DEF(_fun)
#include "../Library/nvapi/nvapi_list.h"
  1. 获取函数
#undef NVIDIA_API_USE
#define NVIDIA_API_GET(_fun)	bRetVal &= NVIDIA_GetApi(_##_fun,	#_fun);
#define NVIDIA_API_USE(_fun)	NVIDIA_API_GET(_fun)
#include "../Library/nvapi/nvapi_list.h"
  1. 列表文件宏
NVIDIA_API_USE(NvAPI_EnumPhysicalGPUs);
NVIDIA_API_USE(NvAPI_GPU_GetFullName);
NVIDIA_API_USE(NvAPI_GPU_GetThermalSettings);
NVIDIA_API_USE(NvAPI_GPU_PowerPolicyGetInfo);
NVIDIA_API_USE(NvAPI_GPU_PowerDeviceGetStatus);
...

以上是关于C++的宏利用include和undef来重复使用的主要内容,如果未能解决你的问题,请参考以下文章

请以这一题为例,讲讲#undef,#ifdefined,#endefine的用法

C/C++:预处理(下)

12_关于flask中的宏

#undef取消宏定义

c语言define用法

在稍后评估的宏中包含#warning? [复制]