C语言typedef struct具体解释
在C中定义一个结构体要用typedef,如:
typedef struct Student {
int a;
}Stu;
于是在声明变量的时候就能够:Stu stu1;(假设没有typedef就必须用struct Student stu1;来声明)。这里的Stu实际上就是struct Student的别名:Stu == struct Student.
当然事实上这里能够不写Student,例如以下:
typedef struct {
int a;
}Stu;
这里也就必须使用Stu stu1来声明对象了。
请看以下的代码:
typedef struct tagMyStruct{
int iNum;
long lLength;
} MyStruct;
上面的tagMyStruct是标识符,MyStruct是变量类型。上述代码事实上完毕了两个操作:
(1)定义一个结构体:
struct tagMyStruct{
int iNum;
long lLength;
};
tagMyStruct称为tag,即标签。实际上是一个暂时名字。不论是否有typedef structkeyword和tagMyStruct一起。都构成了这个结构体。此时我们能够使用struct tagMyStruct varName来定义变量。
可是注意。使用tagMyStruct varName来定义变量是不正确的。
由于struct和tagMyStruct合在一起才干表示一个结构体类型。
(2)typedef为这个新的结构起了一个名字,叫MyStruct.
typedef struct tagMyStruct MyStruct. 因此MyStruct实际上相当于struct tagMyStruct,我们能够使用MyStruct varName来定义变量。
对于相同的代码。在C和C++中也有不同的理解。例如以下:
typedef struct tagMyStruct{
int iNum;
long lLength;
} MyStruct;
在C中。这个结构体声明结构体变量的方式有两种:
1)struct tagMyStruct 变量名。
2)MyStruct 变量名。
在C++中:
1)struct tagMyStruct 变量名;
2)MyStruct 变量名。
C语言typedef struct具体解释的更多相关文章
- C语言 - typedef struct 与struct
c语言中可以选择的数据类型太少了. Java中有一些高级的数据结构. 结构中能够存放基本的数据类型以及其他的结构. 结构定义,一般放在程序的开头部分. 一般放在include之后. #include ...
- C语言 typedef struct _STUDENT {}STUDENT,*PSTUDENT;
#include <stdio.h> #include <stdlib.h> #include <string.h> //给stuct _STUDENT 起一个别名 ...
- c语言typedef的用法-解惑阿!很多天书般的东西解释的不错(转)
转自(http://www.cnblogs.com/wchhuangya/archive/2009/12/25/1632160.html) 一.基本概念剖析 int* (*a[5])(int, cha ...
- [C语言]关于struct和typedef struct
在C中定义一个结构体类型要用typedef: *************************************************************************** t ...
- struct和typedef struct在c语言中的用法
在c语言中,定义一个结构体要用typedef ,例如下面的示例代码,Stack sq:中的Stack就是struct Stack的别名. 如果没有用到typedef,例如定义 struct test1 ...
- C语言typedef的用法(转)
http://www.cnblogs.com/afarmer/archive/2011/05/05/2038201.html 一.基本概念剖析 int* (*a[5])(int, char*); ...
- C/C++语法知识:typedef struct 用法详解
第一篇:typedef struct与struct的区别 1. 基本解释 typedef为C语言的关键字,作用是为一种数据类型定义一个新名字.这里的数据类型包括内部数据类型(int,char等)和自定 ...
- struct 与 typedef struct
1. 基本解释 typedef为C语言的关键字,作用是为一种数据类型定义一个新名字.这里的数据类型包括内部数据类型(int,char等)和自定义的数据类型(struct等). 在编程中使用typede ...
- struct和typedef struct在c++中的用法
#include<iostream> using namespace std; struct test{ int a; }test; //定义了结构体类型test,声明变量时候直接test ...
随机推荐
- Unknown column 't_user.id' in 'where clause'(通过字段名删除不了数据)
创建员工信息表t_user CREATE TABLE t_user( id INT PRIMARY KEY AUTO_INCREMENT, username VARCHAR(20) , passwor ...
- POJ-3436 ACM Computer Factory 最大流 为何拆点
题目链接:https://cn.vjudge.net/problem/POJ-3436 题意 懒得翻,找了个题意. 流水线上有N台机器装电脑,电脑有P个部件,每台机器有三个参数,产量,输入规格,输出规 ...
- centos7 bond0 双网卡配置
[root@openldap ~]# ifconfig bond0: flags=5187<UP,BROADCAST,RUNNING,MASTER,MULTICAST> mtu 1500 ...
- php7 memcache和memcached.so扩展
php7安装memcache和memcached扩展 https://github.com/websupport-sk/pecl-memcache https://github.com/php-mem ...
- hook中ref使用
hook使用ref 父组件: 引入 useRef 声明ref的名字 const dateRef = useRef() 复值给组件 ref={d ...
- POJ 2175 Evacuation Plan
Evacuation Plan Time Limit: 1000ms Memory Limit: 65536KB This problem will be judged on PKU. Origina ...
- readb(), readw(), readl(),writeb(), writew(), writel() 宏函数
参见: http://blog.csdn.net/hustyangju/article/details/20448339
- java 项目 导入成功后jsp页面报错处理方法
本人新导入一个maven项目可是jsp页面一直报错,我先按照网上的经验操作如下步骤: 在pom.xml配置文件中添加上javax.servlet的相关依赖: <dependency> & ...
- hadoop-01-ssh无密登录配置
1,分配master机器2台,slave机器5台: 2,在全部机器上面配置/etc/hosts设置 3,全部机器上面进行ntp设置:TODO 4,在master机器上面: 不要用root登录 1) s ...
- 4、java变量、函数、基本类型的值传递、分支、循环、流程控制
一.全局变量(global).局部变量(local).动态变量(dynamic).静态变量(static) 在类中的变量为全局变量,在方法函数中为局部变量,局部变量必须有人为赋的初值,全局变量的初值是 ...