C - 在模块内部或外部实例化的单例?
C - singleton instantiated inside or outside module?
C 模块有什么限制
- 实例化它自己的核心
struct
(作为一个单例)并且用户代码使用extern
访问它
VS.
- 让用户代码实例化单例
struct
而不是
?
例如,前者的一个限制是用户不能选择分配方式。
EDIT 这个问题的原因是我用方法号遇到了一些问题。 1 以前(C语言限制)现在忘记是什么了!
如果你想要绝对确定,单例"stays single",让模块处理它的创建。
如果要隐藏单例的实现细节,您还希望让模块处理它,并且可以选择 return 指向单例 内部的不透明指针struct
,所以用户无非就是一个"handle"。然而句柄不是必需的,因为它是一个单例:-).
C 模块有什么限制
- 实例化它自己的核心
struct
(作为一个单例)并且用户代码使用extern
访问它
VS.
- 让用户代码实例化单例
struct
而不是
?
例如,前者的一个限制是用户不能选择分配方式。
EDIT 这个问题的原因是我用方法号遇到了一些问题。 1 以前(C语言限制)现在忘记是什么了!
如果你想要绝对确定,单例"stays single",让模块处理它的创建。
如果要隐藏单例的实现细节,您还希望让模块处理它,并且可以选择 return 指向单例 内部的不透明指针
struct
,所以用户无非就是一个"handle"。然而句柄不是必需的,因为它是一个单例:-).