[C语言] 怎样隐藏结构体的细节?

[复制链接]
1610|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 *
啊。
然后程序里面强制。
lxyppc 发表于 2014-11-1 10:36 来自手机 | 显示全部楼层
搜索ADT
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

17

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部