c语言中关于结构体类型的定义

typedef struct
{
RW_en DHCSR; /*!< Debug Halting Control and Status Register */
W_en DCRSR; /*!< Debug Core Register Selector Register */
RW_en DCRDR; /*!< Debug Core Register Data Register */
RW_en DEMCR; /*!< Debug Exception and Monitor Control Register */
}DEBUG_Type;
就是这个用typedef定义的结构体类型 关于最后这个DEBUG_Type是什么意思?

struct在C语言中是一个关键字,用于定义结构数据类型。

  问题中的两种定义的区别在于第一种是给student数据类型,重新定义了一个类型别名,而第二种则单纯的表示一种叫做student的数据结构类型。两者的主要区别在于后面直接定义变量时。如下代码,则可以直接在结构体后面定义一个zhang_san的结构体变量。
struct student
{
int num;
struct student *next;
}zhang_san;
  而第一种的定义,则会出现错误。
typedef struct student
{
int num;
struct student *next;
}student zhang_san;
  
扩展:
  “结构”是一种构造数据类型,现在一般叫做用户自定义数据类型,它是由若干“成员”组成的。 每一个成员可以是一个基本数据类型或者又是一个构造类型。 结构即是一种“构造”而成的数据类型, 那么在说明和使用之前必须先定义它,也就是构造它。如同在说明和调用函数之前要先定义一样。

  定义一个结构的一般形式为:
struct结构名
{
//成员表列
};

  成员表由若干个成员组成, 每个成员都是该结构的一个组成部分。对每个成员也必须作类型说明,其形式为:“类型说明符 成员名;”。成员名的命名应符合标识符的书写规定。例如:
struct stu
{
int num;
char name[20];
char sex;
float score;
};

  在这个结构定义中,结构名为stu,该结构由4个成员组成。 第一个成员为num,整型变量;第二个成员为name,字符型数组;第三个成员为sex,字符型变量;第四个成员为score,浮点型变量。 应注意在括号后的分号是必不可少的。
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-07-26
typedef 就是给定义的结构体取一个别名,这里DEBUG_Type就是这个别名。当你程序后面需要申请一个这样结构的变量时,可以用DEBUG_Type myDebugeType;
第2个回答  推荐于2017-12-15
类似typedef int INT; INT就表示int类型的重定义
DEBUG_Type就是一个结构体类型名,类似int,用法typedef DEBUG_Type *P_DEBUG_Type;
P_DEBUG_Type就是指向DEBUG_Type的指针。本回答被提问者采纳
第3个回答  2011-07-25
DEBUG_Type字面意思是调试类型,实际上DEBUG_Type是作为一个变量,也就是结构体类型的变量。
第4个回答  2011-07-25
typedef的新名字
相似回答