假设我在各种头文件中有#define foo。它可能扩展到一些不同的东西。我想知道(编译.cc文件时)遇到#define时,它将展开的内容,它是哪个文件以及它包含在哪里。如何知道(在GCC中)给定的宏/预处理器符号何时被声明?
可能吗?如果不是,有没有可能有帮助的部分解决方案?
随意添加意见和澄清请求。
编辑:当前的答案似乎专心的情况下有一个#define和我只是想跳到定义或知道的定义是什么。这是简单的情况,是的,你的解决方案工作。但是当我在不同的文件中有相同的#define,并且想知道哪一个是先踢的时候,这些技术都没有用处。好的,我真的使用#warning仔细找到正确的地方。但这需要很多工作。
当你在编译时运行宏时,你想要它做什么? – 2008-11-14 18:33:14
@Greg:打印信息:这样的和刚刚定义的。将扩展到(...)。这是在文件(...),行(...)中。包括从(一个“回溯#includes回到我的.cc文件)。 – 2008-11-14 18:42:45
我对任何软件都有一个很不好的感觉,因为这有什么不同。 – 2008-11-14 22:17:17