gpt4 book ai didi

c++ - 我如何#include 一个名称由宏构建的文件?

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:17:32 25 4
gpt4 key购买 nike

在跨平台项目中,我想#include 一个头文件,其名称包含平台名称。我有一个平台的#define 宏。

例如,对于

#define PLATFORM win32

我要

#include "engine\win32\devices_win32.h"

而对于

#define PLATFORM linux

我要

#include "engine\linux\devices_linux.h"

我将采用 Richard Pennington 的回答,减去一行代码 - 它对我有用!

#define PLATFORM Linux
#define xstr(x) #x
#define str(x) xstr(x)
#define sub(x) x
#include str(sub(engine/PLATFORM/devices_)PLATFORM.h)

最佳答案

通常,你会做更像这样的事情:

#ifdef WIN32
#include "devices_win32.h"
#endif
#ifdef LINUX
#include "devices_linux.h"
#endif

...而不是拥有一个可以根据平台进行不同设置的PLATFORM定义。

关于c++ - 我如何#include 一个名称由宏构建的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1852652/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com