16

与其右键单击宏标识符然后单击“转到定义”,是否可以展开宏引用并查看传递给编译器的代码是什么样的?

4

3 回答 3

20

“Project + Properties, C/C++, Preprocessor, Preprocess to a File = Yes. 编译并打开构建目录中的 .i 文件。

于 2013-11-17T15:17:19.653 回答
6

我听到了关于这个话题的所有可能的否定答案:

  • 宏只能扩展不能评估
  • 预处理器还应该解析包含文件
  • 嵌套宏可能过于复杂
  • 条件预处理可能很棘手
  • 宏是邪恶的,只是避免它们等
  • ETC....

它们都是真实的,但 IMO 它们与日常编程的现实相冲突。

事实上,在旧的 C 项目中工作,其中宏,主要用作函数,这对我来说变得至关重要。使用 /P 生成所有预处理文件是可行的,但过于繁琐且耗时。我只需要一个工具来扩展一个简单的宏,该宏定义在其他文件的上方或最多几行。

怎么做?

  1. 在 Linux 上只需使用 GDB 和他的扩展宏功能
  2. 在 Windows 上,我使用集成到 Visual Studio中的https://www.jetbrains.com/resharper-cpp/

所以,是的,在实际意义上,这是可能的。

于 2016-10-19T13:41:34.280 回答
2

从 VS2017 开始,您可以在快速信息工具提示中看到宏扩展。一个非常酷的新功能。

快速信息工具提示中的宏扩展

于 2019-08-06T22:17:58.147 回答