我想使用一个尚未定义的 typedef 结构,但它是稍后的。
有没有类似结构原型(prototype)的东西?

文件容器.h

// i would place a sort of struct prototype here
typedef struct
{
 TheType * the_type;
} Container;

文件 thetype.h
typedef struct {......} TheType;

文件 main.c
#include "container.h"
#include "thetype.h"
...

最佳答案

替换这一行:

// i would place a sort of struct prototype here

用这些行:
struct TheType;
typedef struct TheType TheType;

由于您需要在定义 TheType 类型之前定义 Container 类型,因此您必须使用 TheType 类型的前向声明 - 为此,您还需要前向声明 struct TheType

那么你不会像这样定义 typedef TheType :
typedef struct {......} TheType;

但您将定义 struct TheType :
struct {......};

关于c - 使用稍后声明的 C 结构,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9153320/

10-11 03:43