首页 > 解决方案 > 用 typedef 声明指向结构的指针有什么用?

问题描述

如图所示,我声明了一个指向结构的指针,一个带有 typedef 关键字,另一个没有 typedef 关键字,我正在尝试分配同一个用户定义数组的地址,但我在行出现错误19 号。

当我注释掉第 19 行并构建项目时,第 20 行没有出现错误。

在此处输入图像描述

标签: cdata-structuresstruct

解决方案


typedef struct node *NODE;

介绍type的同义词NODE。您不能为类型分配值,因此该行 struct node *

NODE = arr;

编译失败。

struct node *NODE2;

引入一个名为NODE2type的全局变量struct node *。您可以根据需要分配给此变量,因此该行

NODE2 = arr;

不给出错误。


以上与以下类似:

typedef int Int32;
int Counter;

...

Int32 = 5; // error
Counter = 5; // valid

推荐阅读