C - 单例在模块内部或外部实例化?

时间:2015-09-07 09:32:48

标签: c architecture module

C模块有什么限制

  1. 实例化自己的核心struct(作为单身人士),用户代码使用extern
  2. 访问此核心

    VS

    1. 让用户代码实例化单身struct而不是
    2. 例如,前者的一个限制是用户无法选择分配方法。

      编辑问题的原因是我遇到了一些问题。过去1(C语言限制),但现在忘记了它们是什么!

1 个答案:

答案 0 :(得分:1)

  1. 如果你想绝对确定,单身"保持单身",让模块处理它的创作。

  2. 如果单例的实现细节保持隐藏,您还希望让模块处理它,并且可选择只返回一个不透明指针指向单例内部 struct,因此用户只有一个"句柄"。然而,手柄不是必需的单身: - )。