`
swimmer2000
  • 浏览: 37988 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

typedef struct与strcut的区别

阅读更多

在Windows下用VC作为开发工具的程序员,常可以在头文件中看到如下这样的定义:

typedef struct tagXXX {
...
} XXX;

按照字面的意思理解,上面的代码段定义了一个结构体tagXXX,同时还指明了XXX类型为strcut tagXXX。直接把定义改为下面这样的代码,不是更好吗?

strcut XXX {
...
};
为什么要多此一举的用typedef来定义个同样的类型呢?答案是:在C里面,声明结构体时必须要带struct关键字,如下代码段所示:

struct tagXXX a;
struct tagXXX b;

多带个struct关键字,一两次没什么,但如果有很多地方都需要声明结构体变量,这就会变成麻烦事,而用typedef声明了相同的类型后,就可以省去这个麻烦,再声明结构体变量,只需要如下则可:

XXX a;
XXX b;

嗯,这样看来,typedef确实可以带来些方便。

分享到:
评论

相关推荐

    typedef struct 与 struct 的区别及初始化

    总结一下,`typedef struct` 和 `struct` 的主要区别在于,`typedef` 提供了类型别名,使得代码更易读且不需要每次使用 `struct` 关键字。而结构体初始化则涉及到成员变量的初始赋值,可以使用初始化列表来实现。在...

    struct和typedef struct区别

    "struct和typedef struct的区别" 在编程语言中,struct和typedef struct都是用来定义结构体类型的,但它们之间存在一些关键的区别。 首先,在C语言中,定义一个结构体类型需要使用typedef关键字,例如: ```c ...

    c++笔记struct和typedef struct彻底明白了

    最后,让我们来探讨 typedef struct 和 struct 的区别。typedef struct tagMyStruct { int iNum; long lLength; } MyStruct;。这里的 tagMyStruct 是标识符,MyStruct 是变量类型(相当于 int、char 等)。这个语句...

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

    在本文中,我们将详细解释 typedef struct 的用法和原理,并讨论它与 struct 的区别。 1. typedef 的基本概念 typedef 是 C 语言的关键字,作用是为一种数据类型定义一个新名字。这里的数据类型包括内部数据类型...

    typedef struct 用法详解和用法小结

    在C语言中,typedef是一个关键字,其主要作用是为已经存在的数据类型定义一...这是typedef与#define预处理命令的一个重要区别,后者会进行简单的文本替换。在实际的编程实践中,应根据具体情况选择合适的类型定义方式。

    typedef struct与struct的区别

    由于对typedef理解不够,因此从网上摘录了一些资料。比较详细和全面

    C_C++中typedef_struct和struct的用法

    在 C/C++ 中,struct 和 typedef struct 是两个常用的数据类型定义方式,它们之间有着微妙的区别。本文将详细介绍 struct 和 typedef struct 的用法,并通过实例代码演示其差异。 首先,让我们来了解一下 struct 的...

    zhsy.rar_InitStack_pop_typedef struct st

    typedef struct StackNode { ElemType data //存放数据 struct StackNode * next //指向下一个结点 }StackNode typedef struct { StackNode * top // 栈顶指针 }LinkStack 实现下列操作: void ...

    CC++中typedefstruct和struct的用法.doc

    3. **`typedef struct`与`struct`的区别**: - `struct _x1 { ... } x1;` 这种方式定义了一个结构体类型 `_x1` 和一个同名的结构体变量 `x1`。 - `typedef struct _x2 { ... } x2;` 这种方式定义了一个结构体类型 ...

    CC中typedefstruct和struct的用法.doc

    CC中typedefstruct和struct的用法.doc

    typedef_struct与struct之间的区别

    然而,当它们结合在一起使用,即`typedef struct`,时,它们的作用就有所不同,这正是`typedef struct`与`struct`之间主要的区别。本文将详细探讨这两者的差异,并通过示例代码来帮助理解。 首先,`struct`关键字...

    优先级调度

    typedef struct pcb{ char name[N]; //进程名 char state; //状态 int arrivetime; //到达时间 int runtime; //估计运行时间 int etime; //周转时间 struct pcb *next; }PCB;

    typedef与define的区别

    typedef与define的区别 在C/C++语言中,typedef和define是两个常用的关键字,虽然它们都可以用来定义别名,但是它们的用法和特点却有很大的区别。 一、typedef的用法 typedef是C/C++语言中的一个关键字,用于定义...

    栈和队列的基础上设计模拟停车场管理程序  停车场管理问题 #include<stdio.h>    #include<stdlib.h>    struct {    char status;    int num;    int time;    }a; /*命令的结构*/    typedef struct{    int num;    int time;    }Element;    struct {    Element *base;    Element *top;    in

    3. **数据结构的定义**:使用 `struct` 关键字定义了三个结构体,分别为命令结构 `a`、元素结构 `Element` 和队列节点结构 `QNode`。`a` 结构体用于存储命令状态(如 'E' 表示结束,'A' 表示进入,'D' 表示离开)、...

    structtype&def_struct

    6. `typedef struct`与直接`struct`定义的区别: 在C/C++中,以下两种声明`MyStruct`的方式含义不同: ```c typedef struct tagMyStruct { int iNum; long lLength; } MyStruct; ``` 与 ```c struct tagMyStruct {...

    操作系统课

    typedef struct pcb { char* inflg; char* exflg;//名称 int priori;//优先级 int sizer;//大小 int position; struct pcb *next; }PCB; //就绪队列 typedef struct { PCB *head; PCB *tail; }READY; //...

    C语言做的成绩管理系统

    typedef struct link { struct student data; struct link *next; }LINK; LINK * Print(); LINK* Shuru(); void d_save(); void average(); void Tuichu(); void ShowData(); void menue(); LINK* xunzhao(); ...

    C++中typedef 及其与struct的结合使用

    当`typedef`与`struct` 结合使用时,我们可以创建更易读且易于理解的类型名称。 1. `typedef` 的基本使用: - 类型别名:`typedef` 关键字可以为已存在的类型创建一个新的名称。例如,`typedef int size;` 创建了...

Global site tag (gtag.js) - Google Analytics