突然忘了这玩意儿了。。今天就来搞一发

typedef是类型定义的意思。typedef struct 是为了使用这个结构体方便。
具体区别在于:
若struct node {}这样来定义结构体的话。在申请node 的变量时,需要这样写,struct node n;
若用typedef,可以这样写,typedef struct node{}NODE; 。在申请变量时就可以这样写,NODE n;
区别就在于使用时,是否可以省去struct这个关键字。

用法小结

第一、四个用途

用途一:

定义一种类型的别名,而不只是简单的宏替换。可以用作同时声明指针型的多个对象。比如:
char* pa, pb; // 这多数不符合我们的意图,它只声明了一个指向字符变量的指针,
// 和一个字符变量;
以下则可行:
typedef char* PCHAR; // 一般用大写
PCHAR pa, pb; // 可行,同时声明了两个指向字符变量的指针
虽然:
char *pa, *pb;
也可行,但相对来说没有用typedef的形式直观,尤其在需要大量指针的地方,typedef的方式更省事。

用途二:

用在旧的C的代码中(具体多旧没有查),帮助struct。以前的代码中,声明struct新对象时,必须要带上struct,即形式为: struct 结构名 对象名,如:
struct tagPOINT1
{
int x;
int y;
};
struct tagPOINT1 p1;

而在C++中,则可以直接写:结构名 对象名,即:
tagPOINT1 p1;

估计某人觉得经常多写一个struct太麻烦了,于是就发明了:
typedef struct tagPOINT
{
int x;
int y;
}POINT;

POINT p1; // 这样就比原来的方式少写了一个struct,比较省事,尤其在大量使用的时候

或许,在C++中,typedef的这种用途二不是很大,但是理解了它,对掌握以前的旧代码还是有帮助的,毕竟我们在项目中有可能会遇到较早些年代遗留下来的代码。

转载于:https://www.cnblogs.com/rj81/p/5279585.html

typedef struct相关推荐

  1. 关于 typedef typedef struct typedef union理解 --写给不长脑子的我

    来源: http://zhidao.baidu.com/link?url=qxzkx5gaoCfnHnygYdzaLEWkC45JqNYYUk42eHHjB0yB3ZMgHv6lGjnq3CRfgQw ...

  2. struct和typedef struct

    原文:https://www.cnblogs.com/qyaizs/articles/2039101.html struct和typedef struct 分三块来讲述: 1 首先://注意在C和C+ ...

  3. 声明 struct x1 { ...}; 和 typedef struct { ...} x2; 有什么不同?

    声明 struct x1 { ...}; 和 typedef struct { ...} x2; 有什么不同? 第一种形式声明了一个 ``结构标签''; 第二种声明了一个 ``类型定义''. 主要的区 ...

  4. C和C++中struct和typedef struct的异同

    分三块来讲述: 1 首先://注意在C和C++里不同 在C中定义一个结构体类型要用typedef: typedef struct Student { int a; }Stu; 于是在声明变量的时候就可 ...

  5. c语言中的typedef struct相当于java的一个类?,C ++中'struct'和'typedef struct'之间的区别?...

    在C ++中,之间有什么区别: struct Foo { ... }; 和 typedef struct { ... } Foo; #1楼 您不能对typedef结构使用forward声明. stru ...

  6. C语言和C++中的struct 和typedef struct

    C语言 中 // c typedef struct Student {int age; } S; 等价于 // c struct Student { int age; }; typedef struc ...

  7. struct和typedef struct的区别(转)

    转载来源:https://www.cnblogs.com/qyaizs/articles/2039101.html 分三块来讲述: 1 首先://注意在C和C++里不同 在C中定义一个结构体类型要用t ...

  8. typedef struct 用法

    如果在c程序中我们写: typedef struct   { int num; int age; }aaa,bbb,ccc; 这算什么呢? 我个人观察编译器(VC6)的理解,这相当于 typedef ...

  9. struct和typedef struct在C与C++中用法

    struct和typedef struct 分三块来讲述: 1 首先://注意在C和C++里不同 在C中定义一个结构体类型要用typedef: typedef struct Student { int ...

  10. 堆化 二叉堆一般用数组来表示。typedef struct _minHeapNodetypedef struct _otherInfo-icoding-C-数据结构

    堆化 二叉堆一般用数组来表示.例如,根节点在数组中的位置是0,第n个位置的子节点分别在2n+1和 2n+2.  因此,第0个位置的子节点在1和2,1的子节点在3和4.以此类推.这种存储方式便于寻找父节 ...

最新文章

  1. 后端 消息 转发_小程序转发探索示例
  2. 数据分析系列剧第四集:行业研究报告与生产计划
  3. SAP Commerce SmartEdit 如何同 SAP Spartacus 协同工作
  4. C语言ASM汇编内嵌语法zz
  5. 【Python】python3编码方式encode介绍
  6. Spring : Spring profile 实现多环境支持
  7. prim算法_数据结构 7.4.1 最小生成树 Prim
  8. 自动化测试——unittest生成HTML测试报告
  9. show interface counter
  10. Android编译判定BoardConfig.mk的宏控是否打开或者有效的验证方法
  11. SSAO + FXAA
  12. adobe premiere 不支持的视频驱动程序
  13. 【学习资料JS】Vue官方文档下载
  14. idea项目中使用URule 规则引擎的简单例子
  15. MindSpore21天实战营(1):基于MindSpore Lite开发目标检测的安卓APP实战
  16. Python 实现发送QQ邮件(可加附件)
  17. python爬取斗鱼主播图片_F_hawk189_新浪博客
  18. 如何通过组策略统一为公司电脑设置“兼容性视图设置”
  19. 人工神经网络 经验公式_不会算工程成本?建筑测算一本通+全套自动计算表,公式可套定额...
  20. 小白学习Spring(二)

热门文章

  1. vnr懒人版教程_凉皮懒人做法,不揉面不洗面,配方配料无保留,简单快速又好吃...
  2. python 读取xml内容
  3. 编解码器长短期记忆神经网络
  4. PIL图像处理模块paste方法简单使用
  5. 没有tools.jar包的解决办法
  6. keyup常用事件_KeyUp 事件
  7. picpick尺子像素大小精度不够准确_袖珍大小MFJ-223 1-60MHz彩色图形VNA矢量网络分析仪...
  8. java 按行读取txt文件并存入数组
  9. 数组遍历_Python数组遍历的简单实现方法小结
  10. golang errors 取 错误 信息_golang-标准errors包的学习