从数字形成#include 文件名

问题描述 投票:0回答:1

通过 C++ 编译器的

-D
选项给定一个数字宏作为输入,我可以形成一个文件名以与其中的
#include
语句一起使用吗?例如,目前我可能有:

#include "data/1024_cadr.h"

...但我想在调用编译器期间通过使用

-DSIZE=1024
来形成此包含字符串。然后,我会在驱动编译器的脚本中使用它,并运行一些测试。我不想显式包含所有文件名,因为脚本在其他地方使用数值(此处为 1024)。

我尝试了以下(和其他想法),但没有运气:

#define str(x) #x
#include "data/"##str(SIZE)##"_cadr.h"
c++ macros include
1个回答
0
投票

正如@Eljay 通过评论回答的那样,以下内容将完成这项工作:

#define  MAKE_CADR3(x) #x
#define  MAKE_CADR2(x) MAKE_CADR3(data/x##_cadr.h)
#define  MAKE_CADR(x)  MAKE_CADR2(x)
#include MAKE_CADR(SZ)
© www.soinside.com 2019 - 2024. All rights reserved.