LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 843|回复: 3

关于struct的申明疑问

[复制链接]
发表于 2005-6-22 22:06:35 | 显示全部楼层 |阅读模式
我在boa的源码里看到这样的结构申明,请问这个结构名中为什么要有这么多的下划线,可是最后又用typedef把它申明成不用前后下划线的.请问这有什么讲究?
  1. struct _auth_dir_ {
  2.         char *directory;
  3.         FILE *authfile;
  4.         int dir_len;
  5.         struct _auth_dir_ *next;
  6. };

  7. typedef struct _auth_dir_ auth_dir;
复制代码
发表于 2005-6-22 22:10:57 | 显示全部楼层
如果结构体不是被作为抽象数据类型使用,按照Linux下的风格是不用typedef的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-6-22 23:19:50 | 显示全部楼层
你说的抽象是指在头文件里申明名称,在函数体里申明结构,然后做成库文件,只有头文件是可见的,是不是这样?还有我搞不明白的是为什么linux里的好多函数名都有那么多的下划线?
回复 支持 反对

使用道具 举报

发表于 2005-6-23 21:44:20 | 显示全部楼层
用下划线主要是避免与其它符号名冲突。常常用在库函数中。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表