typedef struct
突然忘了这玩意儿了。。今天就来搞一发
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相关推荐
- 关于 typedef typedef struct typedef union理解 --写给不长脑子的我
来源: http://zhidao.baidu.com/link?url=qxzkx5gaoCfnHnygYdzaLEWkC45JqNYYUk42eHHjB0yB3ZMgHv6lGjnq3CRfgQw ...
- struct和typedef struct
原文:https://www.cnblogs.com/qyaizs/articles/2039101.html struct和typedef struct 分三块来讲述: 1 首先://注意在C和C+ ...
- 声明 struct x1 { ...}; 和 typedef struct { ...} x2; 有什么不同?
声明 struct x1 { ...}; 和 typedef struct { ...} x2; 有什么不同? 第一种形式声明了一个 ``结构标签''; 第二种声明了一个 ``类型定义''. 主要的区 ...
- C和C++中struct和typedef struct的异同
分三块来讲述: 1 首先://注意在C和C++里不同 在C中定义一个结构体类型要用typedef: typedef struct Student { int a; }Stu; 于是在声明变量的时候就可 ...
- c语言中的typedef struct相当于java的一个类?,C ++中'struct'和'typedef struct'之间的区别?...
在C ++中,之间有什么区别: struct Foo { ... }; 和 typedef struct { ... } Foo; #1楼 您不能对typedef结构使用forward声明. stru ...
- C语言和C++中的struct 和typedef struct
C语言 中 // c typedef struct Student {int age; } S; 等价于 // c struct Student { int age; }; typedef struc ...
- struct和typedef struct的区别(转)
转载来源:https://www.cnblogs.com/qyaizs/articles/2039101.html 分三块来讲述: 1 首先://注意在C和C++里不同 在C中定义一个结构体类型要用t ...
- typedef struct 用法
如果在c程序中我们写: typedef struct { int num; int age; }aaa,bbb,ccc; 这算什么呢? 我个人观察编译器(VC6)的理解,这相当于 typedef ...
- struct和typedef struct在C与C++中用法
struct和typedef struct 分三块来讲述: 1 首先://注意在C和C++里不同 在C中定义一个结构体类型要用typedef: typedef struct Student { int ...
- 堆化 二叉堆一般用数组来表示。typedef struct _minHeapNodetypedef struct _otherInfo-icoding-C-数据结构
堆化 二叉堆一般用数组来表示.例如,根节点在数组中的位置是0,第n个位置的子节点分别在2n+1和 2n+2. 因此,第0个位置的子节点在1和2,1的子节点在3和4.以此类推.这种存储方式便于寻找父节 ...
最新文章
- 后端 消息 转发_小程序转发探索示例
- 数据分析系列剧第四集:行业研究报告与生产计划
- SAP Commerce SmartEdit 如何同 SAP Spartacus 协同工作
- C语言ASM汇编内嵌语法zz
- 【Python】python3编码方式encode介绍
- Spring : Spring profile 实现多环境支持
- prim算法_数据结构 7.4.1 最小生成树 Prim
- 自动化测试——unittest生成HTML测试报告
- show interface counter
- Android编译判定BoardConfig.mk的宏控是否打开或者有效的验证方法
- SSAO + FXAA
- adobe premiere 不支持的视频驱动程序
- 【学习资料JS】Vue官方文档下载
- idea项目中使用URule 规则引擎的简单例子
- MindSpore21天实战营(1):基于MindSpore Lite开发目标检测的安卓APP实战
- Python 实现发送QQ邮件(可加附件)
- python爬取斗鱼主播图片_F_hawk189_新浪博客
- 如何通过组策略统一为公司电脑设置“兼容性视图设置”
- 人工神经网络 经验公式_不会算工程成本?建筑测算一本通+全套自动计算表,公式可套定额...
- 小白学习Spring(二)
热门文章
- vnr懒人版教程_凉皮懒人做法,不揉面不洗面,配方配料无保留,简单快速又好吃...
- python 读取xml内容
- 编解码器长短期记忆神经网络
- PIL图像处理模块paste方法简单使用
- 没有tools.jar包的解决办法
- keyup常用事件_KeyUp 事件
- picpick尺子像素大小精度不够准确_袖珍大小MFJ-223 1-60MHz彩色图形VNA矢量网络分析仪...
- java 按行读取txt文件并存入数组
- 数组遍历_Python数组遍历的简单实现方法小结
- golang errors 取 错误 信息_golang-标准errors包的学习