首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >可视标记条件编译

可视标记条件编译
EN

Stack Overflow用户
提问于 2009-06-02 20:17:58
回答 5查看 359关注 0票数 3

我们有大量针对多个目标编译的C/C++代码,用#ifdefs分隔。其中一个目标与其他目标非常不同,知道您正在编辑的代码是否为该目标编译是非常重要的。不幸的是,#ifdefs可能会非常分散,所以并不总是很清楚为哪个目标编译了哪些代码。

visually的#ifdef高亮显示有助于直观地识别为哪个目标编译的代码,但更改突出显示显然需要对项目文件进行修改。

我感兴趣的是找到一种工具或方法,可以帮助程序员快速识别哪些目标正在使用每一行代码。即使它需要一些手动的源代码注释,我认为它仍然是有帮助的。最好的情况是,它是自动化的,不绑定到特定的编辑器或IDE,并且可以配置为在某些条件下发出警告(例如“您在Target上修改了一些代码,请确保在该平台上测试您的代码!”)

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2009-06-02 20:45:05

看看可视化SlickEdit。“选择性显示”选项可能是您正在寻找的。我在上面找不到任何在线文档,但它将允许您从本质上对代码应用一组宏定义。因此,您可以告诉它显示代码,因为编译器将看到它与一组定义的宏。这比预处理器输出要多得多,因为它实际上隐藏了基于宏定义将被排除的代码块。

但是,这不能让您回答“编译中包含的这一行代码是在什么预处理器条件下”的问题。好的是,它将选择性显示过滤器应用于搜索和打印。

票数 1
EN

Stack Overflow用户

发布于 2009-06-02 20:25:28

如果您的代码变得如此庞大,您无法知道您的代码是什么#,那么是时候重构您的代码了。我建议您将其重构为每个平台的单独cpp文件。

我通常只在代码只有一两行长的情况下使用#idef,而且我通常会将其重构为只有函数或类到自己的cpp文件中。这样就很容易弄清楚你在哪了。

票数 5
EN

Stack Overflow用户

发布于 2009-06-02 21:41:30

我知道一个事实是eclipse cdt做到了这一点。它还有其他一些不错的特性和一些不太好的IDE特性。现在,我用vi编码,所以我可能有偏见。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/941669

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档