1

我正在实现一个 C 预处理器...

在 Wiki 上,我发现了它的以下功能......

  • 三元组替换
  • 线拼接
  • 代币化
  • 宏扩展和指令处理
  • 文件包含

我的问题:

  • 我缺少任何功能吗?
  • 上述功能的正确执行顺序是什么?(即在今天的实际预处理器中做什么之前做了什么?)

如果有人知道任何关于它的标准文档,也请提及。

4

2 回答 2

7

标准文档是 C 标准!官方版本是非免费的,但您可以找到足够准确的草稿,例如http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf for C99。

感兴趣的章节是 5.1.1.2(翻译阶段)和 6.10(预处理指令)。

于 2013-02-17T12:06:50.217 回答
2

您可能想查看 gcc 文档以了解他们如何实现它: http: //gcc.gnu.org/onlinedocs/cpp/

您还可以查看 gcc 的源代码: http ://www.gnu.org/software/gcc/releases.html

希望这可以帮助

于 2013-02-17T12:07:42.337 回答