Using opaque types是隐藏类型结构的可接受方法。但为什么不一直使用它们呢?要求透明类型的好处和情况有哪些,特别是在C?
中答案 0 :(得分:2)
不透明类型的编写和使用要复杂得多,因为你必须完成所有功能,甚至分配和初始化。
使用“透明”类型,您可以使用该类型的变量作为普通数据。例如,如果基础类型是算术类型,则需要进行一些计算。或者,如果它是struct
,您可以直接使用这些成员。
答案 1 :(得分:2)
不透明类型要求您为任务编写完整的API,例如赋值,比较,格式化I / O,成员访问等,这可能是也可能不值得。
而且,有时候,使用普通的标量 是正确的答案;你会使用opaque类型来存储平均值吗?伯爵?