打印
[C语言]

怎样隐藏结构体的细节?

[复制链接]
1108|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zxzxzx123211f|  楼主 | 2014-10-14 20:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
就以链表为例
\\a.h
Struct list {
    Struct list* next;
}
Void init-list(Struct list*);
\\a.c
Void init-list(Struct list* list)
{
  list->next = 0;
}
\\main.c
Main()
{
Struct list list;
Init-list(£list);
}

这样会暴露结构体的细节,如果将节点定义在c文件中,对外提供节点指针,应该怎样编写呢?

相关帖子

沙发
zxzxzx123211f|  楼主 | 2014-10-14 20:14 | 只看该作者
\\a.h
Void init-list(Struct list *list);
\\a.c
Struct list {
  Struct list *next;
}
Void init-list(Struct list *list)
{
List->next = 0;
}
\\main.c
Main()
{
  Struct list *list;
Init-list(list);  //执行此处会出错
}
类似这样子,只提供节点指针,应该怎样进行初始化等操作呢?

使用特权

评论回复
板凳
ccxlslr| | 2014-10-15 09:34 | 只看该作者
要先定义一个结构体实例,再定义指针指向它。你那个指针不知道指向什么地方。

使用特权

评论回复
地板
xlsbz| | 2014-11-1 09:01 | 只看该作者
void *
啊。
然后程序里面强制。

使用特权

评论回复
5
lxyppc| | 2014-11-1 10:36 | 只看该作者
搜索ADT

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

17

帖子

0

粉丝