如何可视化C/C++ #define指令?

Ola*_*lav 0 c c++ ide visual-studio c-preprocessor

我正在寻找可视化#define的效果的方法 - 例如,编译器看不到的代码以不同的颜色显示.

主要是视觉工作室,但很高兴了解其他环境?理想情况下,也是编译器看到的代码,但不会运行.

bru*_*uno 9

一种方法是在预处理后查看源代码,使用gcc(对于C)或g ++(对于c ++)只需使用该选项-E

例如有文件 p.cc

#ifdef FOO
# define BAR 1
#else
# define BAR 2
#endif

int main()
{
  return BAR;
}
Run Code Online (Sandbox Code Playgroud)

如果我没有定义 FOO,我有:

/tmp % gcc -E p.cc
# 1 "p.cc"
# 1 "<built-in>"
# 1 "<command-line>"
# 1 "p.cc"

int main()
{
  return 2;
}
Run Code Online (Sandbox Code Playgroud)

如果我定义 FOO我有:

/tmp % gcc -DFOO -E p.cc
# 1 "p.cc"
# 1 "<built-in>"
# 1 "<command-line>"
# 1 "p.cc"

int main()
{
  return 1;
}
Run Code Online (Sandbox Code Playgroud)

注意:您可能已经#include在源代码中,因此在预处理之后,您会从包含的文件中获得大量的行,对于问题如何显示"预处理"代码忽略包括GCC我给出了绕过它们的答案.