在学习链表时遇到了typedef已经用typedef定义的指针,不是很懂,某浪里有位博主的博文写的很详细,我直接粘过来 
假设我们定义一个结构体:

typedef  struct ANSWER_HEADER
{
u8 u8Type;
u8 u8Code;
u32 u32TimeStamp;
struct ANSWER_HEADER *pNext;
}ANSWER_HEADER_T, *PANSWER_HEADER_T;

ANSWER_HEADER为结构名,这个名字主要是为了在结构体中包含自己为成员变量的时候有用(因为执行到第6行时,别名还没有被编译,所以第6行只能用结构名来定义指向这个结构的指针.
ANSWER_HEADER_T为struct ANSWER_HEADER的别名 
PANSWER_HEADER_T为struct ANSWER_HEADER*的别名

上面的定义方式等价于

struct ANSWER_HEADER
{
u8 u8Type;
u8 u8Code;
u32 u32TimeStamp;
struct ANSWER_HEADER *pNext;
};
typedef struct ANSWER_HEADER ANSWER_HEADER_T;
typedef struct ANSWER_HEADER *PANSWER_HEADER_T;

之后就可以用ANSWER_HEADER_T和PANSWER_HEADER_T来定义变量,如

PANSWER_HEADER_T L;//定义了一个指向ANSWER_HEADER的指针L

相当于

ANSWER_HEADER *L;

传送门:typedef struct和指针 - L4EX的博客 - CSDN博客

https://blog.csdn.net/u013814701/article/details/52996544  

ref:【C语言】23-typedef - M了个J - 博客园 https://www.cnblogs.com/mjios/archive/2013/03/24/2979482.html

typedef struct和指针的更多相关文章

  1. 结构体struct和typedef后面接指针的含义

    typedef struct file { ... }FileInfo, *FileP; 上述程序中定义了一个结构体,结构体的名字为file,并且给其指针 取个别名为FileP,所以后续程序中出现Fi ...

  2. typedef struct LNode命名结构指针(线性表的链式存储)

    一.typedef 关键字 1. 简介: typedef工具是一个高级数据特性,利用typedef可以为某一些类型自定义名称. 2. 工作原理: 例如我们定义链表的存储结构时,需要定义结点的存储数据元 ...

  3. 解惑结构体与结构体指针(struct与typedef struct在数据结构的第一道坎)

    /* 数据结构解惑01  在数据结构中会看到 typedef struct QNode { QElemType data; //数据域 struct QNode *next; //指针域 }QNode ...

  4. typedef struct 指针结构体使用方法

    A>>>>>>>>>>>>>>>>>>>>>>>> ty ...

  5. C/C++语法知识:typedef struct 用法详解

    第一篇:typedef struct与struct的区别 1. 基本解释 typedef为C语言的关键字,作用是为一种数据类型定义一个新名字.这里的数据类型包括内部数据类型(int,char等)和自定 ...

  6. struct 与 typedef struct

    1. 基本解释 typedef为C语言的关键字,作用是为一种数据类型定义一个新名字.这里的数据类型包括内部数据类型(int,char等)和自定义的数据类型(struct等). 在编程中使用typede ...

  7. 结构体定义 typedef struct 用法详解和用法小结

    typedef是类型定义的意思.typedef struct 是为了使用这个结构体方便.具体区别在于:若struct node {}这样来定义结构体的话.在申请node 的变量时,需要这样写,stru ...

  8. typedef struct

    突然忘了这玩意儿了..今天就来搞一发 typedef是类型定义的意思.typedef struct 是为了使用这个结构体方便.具体区别在于:若struct node {}这样来定义结构体的话.在申请n ...

  9. typedef struct 的用法

    typedef struct stu { int age; char name[20]; }stu,*pstu; stu stu1;相当于struct stu stu1; pstu pstu1;相当于 ...

随机推荐

  1. js 替换html

    function getInfo(){ var player_name=$("#name").val(); $.ajax({ url: 'get_wefare', method: ...

  2. hdu 6069 Counting divisors 公式+区间筛

    比赛的时候把公式扣出来了,,但是没有想到用筛法算公因子,,默默学习一下.. 题解:设n=p1^(c1)p2^{c2}...pm^{cm},n=p​1^​c​1*​​​​p​2​^c​2​​​​...p ...

  3. C# 32位系统与64位系统调用不同的DLL文件

    string dll32 = System.Windows.Forms.Application.StartupPath + @"\System.Data.SQLite-32.DLL" ...

  4. 【opencv 源码剖析】 四、 Mat的赋值构造函数 和 拷贝构造函数

    1.赋值构造函数 右值引用 inline Mat& Mat::operator = (Mat&& m) { if (this == &m) return *this; ...

  5. Java学习路径(抛光砖)

    这就是我刚刚在五孔问答中找到的Java学习路线图抛光砖价格.我个人认为,这条Java学习路线是可以的.它是2018年相对较新的Java学习路线,更符合企业就业标准. Java学习路径的第一阶段:Jav ...

  6. SAP云平台里Global Account和Sub Account的关系

    在Cloud Foundry环境里,一个Global Account或者Trial Account能够创建多个SubAccount,如图: 创建好的新的subaccount: 一旦subaccount ...

  7. 手写走通HTTP server 第二版本

    HTTP server 2.0 1 接收客户请求 2 解析客户端请求 3 组合数据,形成HTTP response 4 将数据发送给客户端 升级 : 1 多线程接收客户端请求 2 基本的请求解析,根据 ...

  8. linux usb驱动记录(一)

    一.linux 下的usb驱动框架 在linux系统中,usb驱动可以从两个角度去观察,一个是主机侧,一个是设备侧.linux usb 驱动的总体框架如下图所示:   从主机侧看usb驱动可分为四层: ...

  9. CentOs Linux 对于 修改 yum源 为 阿里

    修改yum源为阿里 备份本地yum源 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo_bak 2.获取阿里 ...

  10. Ubuntu系统--安装官方flash插件包的方法

    浏览器安装官方install_flash_player_npapi_linux.x86_64.tar.gz插件包的方法 第一步:下载安装包. adobe flash player的官方下载instal ...