在C中解释不透明的数据类型?

时间:2011-06-25 11:42:49

标签: c

  

可能重复:
  What is an opaque value?

int main() {
  // Opaque data type?

  return 0;
}

任何人都可以通过示例详细解释不透明数据类型吗?

3 个答案:

答案 0 :(得分:3)

示例:

FILE中声明的<stdio.h>类型。你不知道这种类型的构成;你只使用指向类型的指针,库本身就知道类型的内部,并且可以使用数据。

答案 1 :(得分:2)

opaque数据类型主要是指一个不完整的struct(已声明但未定义的),例如

struct X;

你对X一无所知,你可以在某些情况下使用X&amp;和X *。我建议您查看pimpl idiom

答案 2 :(得分:1)

据我所知,不透明数据类型是您的代码无法在内部读取或修改的数据类型。您只能将它们作为指针和函数使用。这样,数据类型的实际实现可以在不破坏任何使用它的代码的情况下进行更改。