一个关于宏定义的问题,欢迎探讨
如果我希望实现一个宏定义,达到下面的效果:
最终得到的字符串:
#include "fileA.h"
我希望的宏定义是形如:
#define INCLUDE_FILE(file) #include "file"
当然上面的是错误的,我尝试了
#define INCLUDE_FILE(sign1, file, sign2) sign1##file#sign2
这样使用:
INCLUDE_FILE(#include ", fileA.h, ")
得到的结果是:
#include ", fileA.h, " 并报告参数数量不足
这个问题里面,比较难的应该是:#号 和 " 号比较难弄
当然,由于是预处理的东西,所以,这个是不是能够得到正确的预处理结果都还没有验证过(估计不行)