如何在头文件中引用typedef?

the*_*eva 4 c typedef header

我有一个源文件,其中定义了一个typedef结构:

typedef struct node {
    char *key;
    char *value;
    struct node *next;
} *Node;
Run Code Online (Sandbox Code Playgroud)

在此模块中,有一些函数在Node上运行,并将Node作为返回类型.我应该在这个typedef的头文件中写什么?

写作是正确的

typedef *Node;
Run Code Online (Sandbox Code Playgroud)

在标题?

use*_*733 11

您可以使用:

typedef struct node * Node;
Run Code Online (Sandbox Code Playgroud)

但我建议不要将指针隐藏在类型声明中.在变量声明中提供该信息更具信息性.

的module.c:

#include "module.h"
struct node {
    char *key;
    char *value;
    struct node *next;
};
Run Code Online (Sandbox Code Playgroud)

module.h中:

typedef struct node Node;
Run Code Online (Sandbox Code Playgroud)

某处指针的变量声明:

#include "module.h"
Node * myNode; // We don't need to know the whole type when declaring pointer
Run Code Online (Sandbox Code Playgroud)

  • 或者`typedef struct node node;`并且摆脱了帽子的怪异. (2认同)