C语言 typedef struct

结构体typedef struct的用法 和结构体的定义

结构体的定义:

1.

   struct Person {

    char name[20];

    char sex;

    float  height;

    int age;

};   只有结构体的定义

2.  

  struct Person {

    char name[20];

    char sex;

    float  height;

    int age;

} xiaohong;  附加该结构体类型的“结构体变量”的初始化定义结构体

这种定义就相当于

  struct Person {

    char name[20];

    char sex;

    float  height;

    int age;

};

struct Person  xiaohong;

定义另一个结构体

struct Person xiaoming ; 定义一个变量名为xiaoming的结构体

这种每次都要加一个struct关键字的写法有点麻烦

3.

  typedef struct Person {

    char name[20];

    char sex;

    float  height;

    int age;

}Per; 这种写法在声明结构体变量的时候就可以用 Per xiaoming;

      如果没有typedef 就必须用 struct Person,这里的Per实际上就是 struct Person的别名

typedef的用法

typedef可以看作是type define 的缩写,意思就是定义类型,也可以说它是给已有的类型重新定义一个新的别名,而不是产生一个新的类型

typedef和宏定义有些类似,但是又有不同:

1.typedef给出的符号名称仅限于对类型,而不是对值

2.typedef的解释由编译器,而不是预处理执行

3.typedef比#define灵活

为什么要使用typedef ?

1.它可以使定义更加直观,从定义就可以了解变量的某些信息

typedef unsigned int BYTE;  将unisigned int 类型起一个别名 BYTE,  这样我们定义unisigned int 类型的变量的时候就可以这样写  BYTE x,y;

2.可以使程序参数化,提高程序的移植性

type_myType doSomething(args *); 该函数的返回值是type_myType类型的,在一些系统中type_myType可能被定义成long类型,而有的系统中则被定义成 int类型,这样我们在移植程序的时候不需要再去修改函数的返回类型,只需要修改typedef定义就好了。

3.可以使表达式更加简洁,如上面的结构体的定义

使用typedef的定义的作用域取决于typedef语句的位置,如果定义在一个函数内部,他的作用域就是函数的内部,如果定义在函数外部,那么它的作用域就是全局。

时间: 2024-08-24 08:16:04

C语言 typedef struct的相关文章

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来声

struct和typedef struct在c语言中的用法

在c语言中,定义一个结构体要用typedef ,例如下面的示例代码,Stack sq:中的Stack就是struct Stack的别名. 如果没有用到typedef,例如定义 struct test1{ int a; int b; int c; }; test1 t://声明变量 下面语句就会报错 p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #000000; background-color: #fffff

typedef和define,const,struct和typedef struct

先看几个例子 (1) struct{ int x; int y; }test1; 好,定义了 结构 test1, test1.x 和 test1.y 可以在语句里用了. (2) struct test {int x; int y; }test1; 好,定义了 结构 test1, test1.x 和 test1.y 可以在语句里用了. 与 1 比,省写 了 test (3) typedef struct test {int x; int y; }text1,text2; 只说了 这种结构 的(类型

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

第一篇:typedef struct与struct的区别 1. 基本解释 typedef为C语言的关键字,作用是为一种数据类型定义一个新名字.这里的数据类型包括内部数据类型(int,char等)和自定义的数据类型(struct等). 在编程中使用typedef目的一般有两个,一个是给变量一个易记且意义明确的新名字,另一个是简化一些比较复杂的类型声明. 至于typedef有什么微妙之处,请你接着看下面对几个问题的具体阐述. 2. typedef & 结构的问题 当用下面的代码定义一个结构时,编译器

struct和typedef struct用法

参考:http://www.cnblogs.com/qyaizs/articles/2039101.html C语言: typedef struct Student{ int score; }Stu; //Stu是结构类型,是Student的别名,Stu==struct Student Stu stu1; //stu1是一个Stu结构类型的变量 或者 struct Student{ int score; }; struct Student stu1; //stu1是一个Student结构类型的变

关于struct和typedef struct

以 1 struct TelPhone{ 2 3 char Name[20]; 4 5 char TeiNumber[20]; 6 }; 为例 这里先定义了一个 TelPhone的结构体. 加入需要为TelPhone定义一个别名: 其语法为 typedef TelPhone TP: 而实际上TelPhone为一个结构体, 这样写比较好 tepedef struck TelPhone TP: 因为我们的TelPhone是我们自定义的类型,所以我们了解,但是别人不一定会了解,如果我们再加上struc

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

typedef是类型定义的意思.typedef struct 是为了使用这个结构体方便.具体区别在于:若struct node {}这样来定义结构体的话.在申请node 的变量时,需要这样写,struct node n;若用typedef,可以这样写,typedef struct node{}NODE; .在申请变量时就可以这样写,NODE n;区别就在于使用时,是否可以省去struct这个关键字. 第三篇:struct和typedef struct 分三块来讲述:1 首先:在C中定义一个结构体

c语言之struct

1. 结构的基础知识 跟数组一样是成员的集合,但与数组有很大的区别,结构的元素不能通过下标法来访问,因为各个成员的大小可能不同,但是数组可以,因为数组元素保持一致. 1.1 结构声明 struct  tag {member-list } variable-list ; 上面黑色部分是可选部分,但是必须同时出现两个. 实例一:下面是实例: struct{ int a ; char b ; float c ; }x,y[20],*z; 上面定义了实例化了x,y[20],*z ; x是结构变量,y是结

struct和typedef struct在c++中的用法

#include<iostream> using namespace std; struct test{ int a; }test; //定义了结构体类型test,声明变量时候直接test d: //如果用typedef的话,就会有区别 struct test1{ int a; }test11; //test11是一个变量 typedef struct test2{ int a; }test22; //test22 是一个结构体类型.==struct test2 //使用的时候,可以直接访问t