我们有大量的C/C++代码,这些代码是为多个目标编译的,由#ifdefs分隔.其中一个目标与其他目标非常不同,了解您编辑的代码是否针对该目标进行编译通常很重要.不幸的是,#ifdefs可能非常分散
Visual Studio的#ifdef突出显示有助于直观地识别为哪个目标编译哪些代码,但更改突出显示显然需要修改项目文件.
我有兴趣找到一种工具或方法,可以帮助编码人员快速识别哪些目标正在使用每行代码.即使它需要某种手动的源内注释,我认为它仍然有用.最好的情况是它是自动化的,不依赖于特定的编辑器或IDE,它可以配置为在某些条件下发出警告(例如“你修改了目标X上的一些代码,确保在该平台上测试你的代码!”).
查看 Visual SlickEdit.“选择性显示”选项可能正是您要找的.我找不到任何关于它的在线文档,但它允许你基本上将一组宏定义应用于代码.因此,您可以告诉它向您展示代码,因为编译器将使用一组定义的宏来查看它.这比预处理器输出要多得多,因为它实际上隐藏了基于宏定义排除的代码块.这并不能让你回答“在编译中包含这行代码的预处理器条件下”的问题.好处是它将选择性显示过滤器应用于搜索和打印.