我正在尝试学习我发现并不那么容易的预处理器技巧( Can we have recursive macros? , Is there a way to use C++ preprocessor stringification on variadic macro arguments? , C++ preprocessor __VA_ARGS__ number of arguments , Variadic macro trick ,...)。
我知道 -E 选项可以查看预处理器整个过程的结果,但我想知道是否存在选项或方法来逐步查看结果。事实上,有时很难理解当一个宏调用一个调用宏的宏时会发生什么……使用禁用上下文、绘制蓝色的机制……简而言之,我想知道是否有一种带有断点和其他功能的预处理器调试器工具已存在。
(不要回答说使用预处理器指令是危险的、丑陋的、可怕的,不是 C 中的良好实践,会产生不可读的代码......我知道这一点,但这不是问题)。
最佳答案
是的,此工具作为 Eclipse IDE 的一项功能而存在。我认为访问该功能的默认方法是将鼠标悬停在您想要查看展开的宏上(这将显示完整的展开),然后按键盘上的 F2
(出现一个弹出窗口,允许您逐步完成每个扩展)。
当我使用这个工具来了解有关宏的更多信息时,它非常有帮助。只需稍加练习,您就不再需要它了。
如果有人对如何使用此功能感到困惑,我在 Eclipse 文档 here 上找到了一个教程。 .
关于Cpp : How to understand and/or debug complex macros?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54158219/