1
我刚读了一个开源。其中,我看到了一些代码,这让我不熟悉。所以它是关于结构的东西:纯C结构奇怪
struct _NameStruct;
typedef struct _NameStruct NameStruct
然后,他们(开源)使用NameStruct来包含一些变量。我不知道为什么struct _NameStruct还没有定义一些变量,所以他们如何使用它?
我刚读了一个开源。其中,我看到了一些代码,这让我不熟悉。所以它是关于结构的东西:纯C结构奇怪
struct _NameStruct;
typedef struct _NameStruct NameStruct
然后,他们(开源)使用NameStruct来包含一些变量。我不知道为什么struct _NameStruct还没有定义一些变量,所以他们如何使用它?
如果仔细阅读代码,您可能会发现它们只使用指向数据类型的指针。它可能是一个不透明的数据类型,所以你可以传递一个指向它的指针,但实际上并不知道它是如何实现的。
这些通常用于只有库需要知道结构实现的句柄。
+1另请参阅[柴郡猫](http://en.wikipedia.org/wiki/Opaque_pointer) – ckhan
检查包含文件以查看它的定义 –
@Invoker:只有当您需要分配给结构的成员或需要结构的大小等时,才需要定义。要声明指向它的指针,细节不是必需的,因为指针的大小将基于平台而不是结构,因此被允许。 – legends2k