gpt4 book ai didi

c++ - 预处理器指令的替代方法

转载 作者:可可西里 更新时间:2023-11-01 18:42:07 25 4
gpt4 key购买 nike

我正在从事在 Symbian 平台上开发 C++ 手机应用程序。要求之一是它必须适用于从第 2 版手机到第 5 版手机的所有 Symbian 手机。现在,不同版本的 Symbian SDK 存在差异。我必须使用预处理器指令有条件地编译与正在为其构建应用程序的 SDK 相关的代码,如下所示:

#ifdef S60_2nd_ED
Code
#elif S60_3rd_ED
Code
#else
Code

现在,由于我正在开发的应用程序并不简单,它很快就会增长到数万行代码,并且像上面这样的预处理器指令将遍布各处。我想知道在这种情况下是否有任何替代方法或者可能是使用这些预处理器指令的更好方法。

请帮忙。

最佳答案

嗯……这取决于差异的确切性质。如果可以将它们抽象出来并将它们隔离到特定的类中,那么您可以走那条路。这意味着对某些类进行特定于版本的实现,并切换整个实现,而不是到处切换几行。

你会

  • 我的类.h
  • MyClass_S60_2nd.cpp
  • MyClass_S60_3rd.cpp

等等。您可以选择要编译的 CPP 文件,方法是如上所述使用 #ifdefs 将整个内部包装起来,或者我在构建级别(通过 Makefile 或其他)控制在为各种目标构建时包含哪些文件。

根据更改的性质,这可能会干净得多。

关于c++ - 预处理器指令的替代方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/857395/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com