c - typedef name *aliasname 的目的是什么

标签 c typedef

我正在学习 structtypedef 并且对编码完全陌生

typedef struct
{
  uint8_t    ID;
  uint8_t    TanID;
  uint8_t    ProductID;
  uint8_t    SetlTme;
  uint8_t    NoOfStep
}product_Config;

typedef product_Config *product_Config_Ptr;

我不明白最后一行是什么意思

typedef product_Config *product_Config_Ptr;

最佳答案

typedef 定义类型的别名。

在您的示例中,typedef Tank_Config *Tank_Config_Ptr;Tank_Config_Ptr 声明为 Tank_Config * 的别名。

所以下面的定义是等价的。

Tank_Config *ptr1;
Tank_Config_Ptr ptr2;

也就是说,将指针隐藏在 typedef 中被认为是不好的做法。它掩盖了正在使用指针的事实,并可能导致代码读者感到困惑。

关于c - typedef name *aliasname 的目的是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40995920/

相关文章:

c++ - 如何将枚举导入 C++ 中的不同命名空间?

c++ - 简单模板代码中的错误

c++ - 如何在 C(++) 中定义自定义错误代码

c - 使用 fgetc 将数据加载到二维数组中?

c - 二维数组指针

c - 使用 typedef 时,二维数组如何在 C 中工作?

c - 如何禁用将单词粘贴到仅限数字的编辑控件中?

c - IAR <time.h>、本地时间、mktime

任意整数(基本类型)的 C++ 随机数

c - 我如何让 gcc 告诉我传递了错误的标量类型?