【问题标题】:#ifdefs in .cpp and .h files.cpp 和 .h 文件中的 #ifdefs
【发布时间】:2014-01-24 02:22:32
【问题描述】:

这是一个菜鸟问题。

基本上我有.h & .cpp 文件,我需要通过#ifdef 将条件编译引入其中。 .h.cpp 都包含 10 个函数。我只需要对其中的 2 个进行条件编译。因此,我打算将 2 包装在 .h 文件中的 #ifdef

问题 1:我是否还需要再次将函数实现包装在 C++ 文件中?我想不会吧?我想确定。

问题 2:我有这 10 个函数的函数指针数组。我是否也应该将 #ifdef 包装在这个数组中以获取 2 个函数?

【问题讨论】:

    标签: c++ compilation ifdefine


    【解决方案1】:

    1:如果它们是类函数,是的。否则,如果您不 ifdef 他们可能会没事,但我个人会。因为如果有人在另一个翻译单元中将该函数声明为 extern,他就可以访问该函数。

    2:我不会这样做,因为它会导致所有客户端处理 2 个不同大小的数组。我只会将这两个指针设置为 NULL 并在调用方处理这种情况。

    【讨论】:

    • 是的,你是对的 1 和 2 。对于 2,我找到了一个很好的解决方案。对于 2,我将进行 #ifdef 平台检查并在仅返回错误的不兼容平台中实现虚拟函数。这样,结构仍将保持不变:-)
    • 当然这也很好用,我一直在为跨平台代码这样做。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-29
    • 1970-01-01
    • 2022-11-27
    • 2010-10-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多