C 预处理器:从参数中删除引号

Tho*_*mas 5 quotes macros c-preprocessor

我在构建系统中滥用C预处理器,从同一源文件生成“自述”纯文本文件和网页。构造是这样的:

实际的定义在data.h

#define WEBSITE "http://example.com"
Run Code Online (Sandbox Code Playgroud)

请注意,//URL 中的 必须加引号,否则将被视为评论的开始。,在参数中使用 a 时也会出现类似的问题;引号是必需的,否则逗号将被视为参数分隔符。

使用此标头,文件将通过Creadme.txt.pp预处理器运行:

#include "data.h"
Visit the website at WEBSITE!
Run Code Online (Sandbox Code Playgroud)

当然,预处理器的输出是:

Visit the website at "http://example.com"!
Run Code Online (Sandbox Code Playgroud)

引号出现在输出中。有什么方法或解决方法可以让此代码给出输出:

Visit the website at http://example.com!
Run Code Online (Sandbox Code Playgroud)

我正在使用 Visual C++ 2008。我知道预处理器不是这项工作的理想工具;也欢迎使用其他内置 VC++ 功能的建议。(我尝试使用 XSLT 来构建 XML,但是不可能将一个 XML 文件包含到另一个 XML 文件中,这真是令人头疼。)