提问人:user2023370 提问时间:10/29/2023 更新时间:10/29/2023 访问量:43
从数字形成 #include 文件名
Forming a #include file name from a number
问:
通过 C++ 编译器的选项给定一个数字宏作为输入,我可以形成一个文件名以用于其中的语句吗?例如,目前我可能有:-D
#include
#include "data/1024_cadr.h"
...但我想通过在调用编译器期间使用 来形成这个包含字符串。然后,我会在驱动编译器并运行一些测试的脚本中使用它。我宁愿不显式包含所有文件名,因为脚本在其他地方使用数值(此处为 1024)。-DSIZE=1024
我尝试了以下(和其他想法),但没有运气:
#define str(x) #x
#include "data/"##str(SIZE)##"_cadr.h"
答:
0赞
user2023370
10/29/2023
#1
正如@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)
上一个:我们如何传递包含路径?
评论
#include MAKE_CADR(SIZE)
其中 和 和#define MAKE_CADR(x) MAKE_CADR2(x)
#define MAKE_CADR2(x) MAKE_CADR3(data/x##_cadr.h)
#define MAKE_CADR3(x) #x