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);
...

原文链接: https://www.cnblogs.com/zzz3265/p/17064241.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

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

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/313521

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月16日 下午12:56
下一篇 2023年2月16日 下午12:56

相关推荐