1
3
由于它是一个不透明的结构,所有这些操作的目的显然是实现一个不透明的数据类型,同时保存所有的“优点”并至少消除一些“缺点”。
不透明数据类型的一个突出问题是,在标准C中,您基本上被迫在不透明库函数中动态分配它们。在本地隐式声明不透明对象是不可能的。这会对效率产生负面影响,并常常迫使客户机实现额外的资源管理(即,记住在不再需要对象时释放它)。显示不透明对象的确切大小(在本例中通过函数)并依赖于
通常,为了实现相同的技术,不透明对象的大小可能在头文件中作为编译时常量公开。但是,如果这个独立库中的对象大小发生变化,使用函数还有一个额外的好处,即不必重新编译整个项目(如@R)。评论中提到)。 以前版本的答案(以下几点仍然适用,但显然是次要的):
这并不完全等同,因为
语义上另一个不相关的区别是
|
user3170450 · 在NodeJS中写入音频文件时读取该文件 7 年前 |
shao.lo · gst启动不会播放到alasink设备=硬件:2 8 年前 |
Engine · 获取ALSA支持的最大采样频率 10 年前 |
tuck · 从python应用程序流式传输alsa-pcm扬声器输出 11 年前 |