Dan*_*son 3 c++ cross-platform c-preprocessor
我们有大量的C/C++代码,这些代码是为多个目标编译的,由#ifdefs分隔.其中一个目标与其他目标非常不同,了解您编辑的代码是否针对该目标进行编译通常很重要.不幸的是,#ifdefs可能非常分散,因此并不总是很明显为哪些目标编译了哪些代码.
Visual Studio的#ifdef突出显示有助于直观地识别为哪个目标编译哪些代码,但更改突出显示显然需要修改项目文件.
我有兴趣找到一种工具或方法,可以帮助编码人员快速识别哪些目标正在使用每行代码.即使它需要某种手动的源内注释,我认为它仍然有用.最好的情况是它是自动化的,不依赖于特定的编辑器或IDE,它可以配置为在某些条件下发出警告(例如"你修改了目标X上的一些代码,确保在该平台上测试你的代码!").
如果你的代码变得那么大,你无法告诉你的#ifdef,那么是时候重构你的代码了.我建议你将它重构为每个平台的单独cpp文件.
我只能在代码长度只有一两行时使用#idef,而且我通常会重构它的唯一函数或类到自己的cpp文件中.这样可以很容易地找出你的位置.