0

我需要<在 C/C++ 代码文件中编码所有出现的字符。为防止冲突,我需要知道 C/C++ 标准中未保留哪些字符。例如,如果$没有保留,我可以暂时编码<$在以后恢复原始 C/C++ 代码。

我需要使用类似 XML 的中间语言对我的 C/C++ 代码进行这种编码。

提前致谢。

4

3 回答 3

5

而不是列出未保留的字符(有无限),这里是标准 2.3.1 中的保留字符:

空格、水平制表符、垂直制表符、换页、换行
a 到 z
A 到 Z
0 到 9
_ { } [ ] # ( ) % : ; . ? * + - / ^ & | ~ != , \" '

于 2012-12-17T09:08:08.660 回答
4

如果将所有<字符转换为$,您将如何保留$原始文件中的任何实例?

既然你说你的目标是一种类似 XML 的中间语言,为什么不使用 XML 转义和转换<&lt呢?(在这种情况下,您还需要进行转换&,比如说&amp。)有很多开源库可以帮助您做到这一点。如果您找不到任何独立模块,这里是我编写的代码,可以提取其 XML(非)转义功能。

于 2012-12-17T09:08:59.527 回答
1

这取决于您所说的“保留”是什么意思。一个实现只需要理解输入中非常有限数量的字符,所有其他字符都是通过通用字符名称输入的。允许(我什至会说鼓励)实现更多支持,请参见第 2.2 节,第 1 点。实际上,注释中以及字符串和字符文字(至少字符形式,在 C++11 中为 Unicode 形式)。您最好的选择可能是引用的可打印内容。

于 2012-12-17T09:54:44.843 回答