用typedef给结构体一个别名
转:typedef
一、用typedef给结构体一个别名
typedef struct tagMyStruct { int iNum;long lLength; } MyStruct;
这语句实际上完成两个操作:
1、 定义一个新的结构类型
struct tagMyStruct { int iNum; long lLength; };
分析:
tagMyStruct称为“tag”,即“标签”,实际上是一个临时名字,struct 关键字和tagMyStruct一起,构成了这个结构类型,不论是否有typedef,这个结构都存在。
我们可以用struct tagMyStruct varName来定义变量,但要注意,使用tagMyStruct varName来定义变量是不对的,因为struct 和tagMyStruct合在一起才能表示一个结构类型。
2、typedef为这个新的结构起了一个名字MyStruct
typedef struct tagMyStruct MyStruct;
分析:
MyStruct实际上相当于struct tagMyStruct,我们可以使用MyStruct varName来定义变量。
新结构建立的过程中遇到了pNext域的声明,类型是pNode,要知道pNode表示的是类型的新名字,那么在类型本身还没有建立完成的时候,这个类型的新名字也还不存在,也就是说这个时候编译器根本不认识pNode。
二、其他写法
1、写法1
typedef struct tagNode {char *pItem;struct tagNode *pNext; } *pNode;
2、写法2
typedef struct tagNode *pNode; struct tagNode {char *pItem;pNode pNext; };
注意:在这个例子中,你用typedef给一个还未完全声明的类型起新名字。C语言编译器支持这种做法。
3、规范做法
struct tagNode {char *pItem;struct tagNode *pNext; }; typedef struct tagNode *pNode;
转载于:https://www.cnblogs.com/amanlikethis/p/3610837.html
用typedef给结构体一个别名相关推荐
- c语言struct结构体类型有关typedef定义的本名和别名
c语言结构体类型的本名 首先,定义结构体的标准语法为 在c语言中,定义结构体的标准语法是: struct A {}; A是这个结构体的[**本名**].在使用本名定义一个新的结构体时, 必须加上str ...
- c/c++中typedef详解(此文对typedef用于结构体的定义说明得很清楚到位)
1. typedef 最简单使用 [c-sharp] view plain copy typedef long byte_4; // 给已知数据类型long起个新名字,叫byte_4 你可以在任何需要 ...
- C语言中struct typedef 以及结构体指针用法
struct .typedef以及结构体指针用法 typedef用法 结构体指针用法 结构体初始化 typedef是类型定义的意思.typedef struct 是为了使用这个结构体方便.具体区别 ...
- 【C 语言】结构体 ( 结构体类型定义 | 结构体类型别名 | 声明结构体变量的三种方法 | 栈内存中声明结构体变量 | 定义隐式结构体时声明变量 | 定义普通结构体时声明变量 )
文章目录 一.结构体类型定义 二.结构体类型别名 三.结构体类型变量声明 1.使用结构体类型 ( 别名 ) 声明变量 2. 定义隐式结构体时声明变量 3.定义普通结构体时声明变量 二.完整代码示例 一 ...
- C++之指针探究(十八):typedef结合结构体指针
typedef结合结构体指针 例: 运行结果: 附上例代码 //小问学编程 #include <stdio.h>//我们一次定义了2个类型 //第一个是结构体类型,有2个名字:struct ...
- C语言:用typedef定义结构
普通定义结构的方法 //定义结构Date1 struct Date1 {int year; //年int mouth; //月int day; //日 };int main() {struct Dat ...
- typedef 给结构体命名
最近些代码,搞不清楚typdef给结构体命名后,到是定义了个"变量 "还是定义了个"结构名" 结构体一般的写法 struct student //student ...
- C语言typedef与结构体
众所周知,typedef是用来为复杂的声明定义简单的别名.最近在学习结构体的时候,被几个点搞得有点迷糊了. 譬如下面几个: typedef struct stu{int a;} STU, STUARR ...
- c语言用typedef定义结构体,C语言结构体定义 typedef struct
c语言规范,定义结构体: typedef struct ANSWER_HEADER { u8 u8Type; u8 u8Code; u32 u32TimeStamp; struct ANSWER_HE ...
- typedef与结构体
目录 结构体类型的重命名: 结构体指针类型的重命名: 结构体类型和结构体指针类型共同的重命名: 结构体类型的重命名: #include<stdio.h> #include<strin ...
最新文章
- linux c/c++ 判断是否为中文(不包括中文符号,非正则)
- pr图形模板预设怎么使用_技术丨PR怎样安装动态图形模板?Pr mac版怎样调用Mogrt预设?Adobe Premiere导入MOGRTs预设完整教程...
- 我的Java后端书架 (2016年暖冬4.0版)
- 查看修改Linux时区和时间
- 10.1 HTML介绍与开发环境的搭建
- miui游戏驱动程序偏好设置_米粉必看:小米官方教你如何关闭 MIUI 广告 - 小米,MIUI...
- IIS5、IIS6、IIS7的ASP.net 请求处理过程比较
- js访问对方手机文件夹_前端开发——解决vue首次访问太慢的问题
- maven spring-mvc mybatis整合
- FREERTOS 手册阅读笔记
- 倒计时 5 天!Apache Flink Meetup 7.10 北京站,Flink x TiDB 专场等你来!
- HenCoder Android 开发进阶:自定义 View 1-4 Canvas 对绘制的辅助 clipXXX() 和 Matrix
- java学习-狼人杀
- Django博客项目实战
- 苹果手机无法连接wifi_手机信号太差?一键查看连接的WIFI离我们多少米
- Intent启动拨号盘,实现打电话功能
- jQuery的事件冒泡,事件对象和图片跟随
- ffmpeg画中画效果
- scrapy 两类item_手把手教你进行Scrapy中item类的实例化操作
- HackingLab的一套渗透测试题
热门文章
- 构造函数与一般函数的区别
- java 常用缓存描述
- java list增改查_Java编程通过list接口实现数据的增删改查代码示例
- uml边界类例子_UML中边界类、控制类和实体类
- python切片将两个list合并_8种高级的Python列表使用技巧,都给你整理好啦(附实操代码)...
- vue对象中的实例属性
- python中%的用法_python中%的用法
- python房价预测_Python实战:使用线性回归预测房价
- 内存测试软件 ddr 4,DDR4内存理论性能测试
- python适用于什么系统_Python适合在什么系统