gpt4 book ai didi

c - 隐藏结构的内部

转载 作者:太空宇宙 更新时间:2023-11-04 02:55:26 25 4
gpt4 key购买 nike

在 API 中,使用 void * 类型作为返回给用户的结构的句柄是否有一些优势(与使用 name_of_the_structure * 类型并仅隐藏相比)实现)?

最佳答案

如果您使用void*,那么内容是一个完全黑的盒子,用户无法知道任何内容。但是,您也失去了一些类型安全性,因为您的 API 的用户可以将任何 指针传递给您的函数,而您没有简单的方法来检测它是否是正确的指针。

幸运的是,您实际上不必完全隐藏结构。您只需拥有一个与 API 一起分发的公共(public) header ,它声明结构,例如

struct my_special_struct;

那么你的函数仍然可以使用指向该结构的指针来声明,用户也可以,但是用户必须使用你的函数来创建实际的实例,并且用户也不能使用你的结构来访问内部字段或使用 sizeof 获取它的大小。

关于c - 隐藏结构的内部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18123687/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com