使用 C 模块时会施加哪些限制
- 实例化自己的核心
struct
(作为单例),用户代码使用extern
访问它
VS。
- 让用户代码实例化单例
struct
?
例如,前者的一个限制是用户无法选择分配方法。
编辑 这个问题的原因是我用方法号碰壁了。 1 过去(C 语言限制)但现在已经忘记它们是什么了!
最佳答案
如果您想绝对确保单例“保持单例”,请让模块处理其创建。
如果单例的实现细节应保持隐藏,您还希望让模块处理它,并且可以选择仅返回一个指向单例的内部
struct
的不透明指针,所以用户除了一个“句柄”之外什么也没有。然而,句柄不是必需的,因为它是单例:-)。
关于C - 单例在模块内部还是外部实例化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32435379/