结构体的typedef问题

方紫涵 2014-02-08 07:40:24
typedef struct hw_module {
uint32_t reserved[32-7];

} hw_module;

1)第一个 hw_module 是机构的类型名,第2个hw_module是定义的变量名 会分配内存的,这么理解对不对?
2)为啥类型名和变量名可以相同?有这个规定?
...全文
136 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
方紫涵 2014-02-10
  • 打赏
  • 举报
回复
duoxie
derekrose 2014-02-09
  • 打赏
  • 举报
回复
第二个不是变量名。。。没有分配空间
missheaven2011 2014-02-09
  • 打赏
  • 举报
回复
两个都是类型
方紫涵 2014-02-09
  • 打赏
  • 举报
回复
引用 3 楼 KenZhang1031 的回复:
第一个是结构类型名,第二个不是定义的变量名,是typedef定义的结构类型名(即第一个)的别名。相当于: struct 第一个结构类型名 { ..... }; typedef 第一个结构类型名 别名; 合在一起使用就是 typedef struct 第一个结构类型名 { ..... }别名; 此时别名就表示了"struct 第一个结构类型名",如果要定义结构的变量,有两种定义方法: struct 第一个结构类型名 变量名; 别名 变量名;
那再问一下 “结构类型名” 和 “别名” 可以是一样的??
方紫涵 2014-02-09
  • 打赏
  • 举报
回复
引用 3 楼 KenZhang1031 的回复:
第一个是结构类型名,第二个不是定义的变量名,是typedef定义的结构类型名(即第一个)的别名。相当于: struct 第一个结构类型名 { ..... }; typedef 第一个结构类型名 别名; 合在一起使用就是 typedef struct 第一个结构类型名 { ..... }别名; 此时别名就表示了"struct 第一个结构类型名",如果要定义结构的变量,有两种定义方法: struct 第一个结构类型名 变量名; 别名 变量名;
多谢高人!!!
Mr. Code 2014-02-09
  • 打赏
  • 举报
回复
一样是可以,不过你编程最好不要一样,因为没有意义。通常只需写别名,比如: typedef struct { ..... }tAnyName; // 定义结构体 tAnyName var_name; // 定义结构变量
pingdan32 2014-02-08
  • 打赏
  • 举报
回复
引用 3 楼 KenZhang1031 的回复:
第一个是结构类型名,第二个不是定义的变量名,是typedef定义的结构类型名(即第一个)的别名。相当于: struct 第一个结构类型名 { ..... }; typedef 第一个结构类型名 别名; 合在一起使用就是 typedef struct 第一个结构类型名 { ..... }别名; 此时别名就表示了"struct 第一个结构类型名",如果要定义结构的变量,有两种定义方法: struct 第一个结构类型名 变量名; 别名 变量名;
楼上正解
Mr. Code 2014-02-08
  • 打赏
  • 举报
回复
第一个是结构类型名,第二个不是定义的变量名,是typedef定义的结构类型名(即第一个)的别名。相当于: struct 第一个结构类型名 { ..... }; typedef 第一个结构类型名 别名; 合在一起使用就是 typedef struct 第一个结构类型名 { ..... }别名; 此时别名就表示了"struct 第一个结构类型名",如果要定义结构的变量,有两种定义方法: struct 第一个结构类型名 变量名; 别名 变量名;
richyhuang 2014-02-08
  • 打赏
  • 举报
回复
可以一样的,不过最好不一样,便于区分类型和名称。
arthurzhuyong 2014-02-08
  • 打赏
  • 举报
回复
typedef struct hw_module hwMod; hw_module hwMod;

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧