【发布时间】:2011-01-01 04:48:18
【问题描述】:
我正在为我的构建系统滥用 C 预处理器来从同一个源文件生成“自述”纯文本文件和网页。结构是这样的:
实际定义在data.h:
#define WEBSITE "http://example.com"
请注意,URL 中的// 必须被引用,否则将被视为评论的开始。在参数中使用, 时也会出现类似的问题;引号是必需的,否则逗号将被视为参数分隔符。
使用这个头文件,一个文件readme.txt.pp通过C预处理器运行:
#include "data.h"
Visit the website at WEBSITE!
当然,预处理器的输出是:
Visit the website at "http://example.com"!
引号出现在输出中。有什么方法或解决方法可以让这段代码给出输出:
Visit the website at http://example.com!
我正在使用 Visual C++ 2008。我知道预处理器不是这项工作的理想工具;也欢迎使用其他内置 VC++ 功能的建议。 (我用 XSLT 尝试了 XML,但不可能将一个 XML 文件包含到另一个文件中,这是一个阻碍。)
【问题讨论】:
标签: macros c-preprocessor quotes