为每个操作系统创建单独的项目或将特定于操作系统的代码混合到一个项目中哪个更好?
例如,是继续在 C++ 中使用这些更好,还是完全绕过这些定义,对每个操作系统采用不同的方式,但保持相同的实际最终结果和过程:
#ifdef __WIN32
// Do Windows stuff
#endif
我觉得管理和重构特定于每个操作系统的代码会容易得多,但它又会更加编译、调试和测试。
最佳答案
当我必须为多个操作系统编写代码时,我会在单独的模块中创建独立于操作系统的代码,并且特定于操作系统的代码在单独的类中处理。
根据您的需要,您还可以查看像 Qt
这样的跨平台库来处理特定于平台的代码。
使用 #ifdef
不是处理此问题的最佳方法,应尽可能避免。创建适当的类来抽象您的需求是可行的方法。
既然你说的是项目,那是另外一个层次。您可以使用 CMake
等工具为各种平台创建构建环境。您可以将特定于平台的类链接到您的代码,而无需更改您的主代码。
关于c++ - 为每个操作系统创建单独的项目还是将它们全部混合到一个项目中更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30016582/