Q如何在 C 语言中实现不透明(抽象)数据类型?
A一种好的方法是让客户端使用结构指针(也许还通过 typedef 隐藏),这些指针指向未公开定义的结构类型。换句话说,客户端在不知道结构字段是什么的情况下,使用结构指针(并调用接受和返回结构指针的函数)。(只要不需要结构体的细节——例如,只要->和sizeof运算符不被使用——C 语言非常乐意处理指向不完整类型结构的指针。[脚注] )只有在实现抽象数据类型的源文件中,结构体的完整声明才真正有效。
另请参阅问题 11.5。
额外链接
示例
稍微短一点、稍微滑稽一点的例子