dsp*_*pjm 5 c linux directory posix header
正如我们在中看到的dirent.h
,有一个typedef:
typedef struct __dirstream DIR;
Run Code Online (Sandbox Code Playgroud)
它说它对用户是不透明的。而且,即使在gcc标头中也找不到它,__dirstream
结构定义只能在glibc源代码中找到。我想知道为什么这个结构必须是不透明的(我认为说它阻止用户直接引用是不合理的,也许我错了)?有什么收获?
您可以在此处找到实际定义,但正如已经指出的那样,您不应直接访问它。
它可以在标准库(或同一库的不同版本)的实现之间随机更改,这就是它被隐藏的原因。
你对“告知用户”的评论就够了……我不知道,这是一个非常乐观的前景。隐藏定义会使滥用它变得更加困难,这反过来又使编写违反规范并包含毫无意义的易碎代码的程序变得更加困难。这是一件好事; 你会发现很多软件工程都致力于试图阻止程序员做他们不应该做的事情。
这反过来不一定是因为“所有程序员都是愚蠢的”,至少这不是我的解释,而是因为典型软件系统的复杂性非常非常高,因此尽可能尝试降低它是有益的。信息隐藏是降低系统特定位置复杂性的一种方法。
归档时间: |
|
查看次数: |
2534 次 |
最近记录: |