注册 登录
编程论坛 C语言论坛

C语言关于结构体的问题

vanishedtear 发布于 2022-06-20 20:36, 745 次点击
自己重新去翻了下 C Primer Plus的关于结构体这章节的内容,如果所示,不知道为什么可以这样定义,或者这种定义方式,叫什么?
程序代码:

typedef struct ds18b20_handle_s
{
   ........
    uint8_t rom[8];                                         /**< chip mode */
} ds18b20_handle_t;

ds18b20_info_t info;


可以看到这个结构体的标签是 ds18b20_handle_s , 变量是 ds18b20_handle_t, 为什么可以用变量作为类型去定义一个新的变量 info ?
1 回复
#2
rjsp2022-06-20 21:09
它等同于
程序代码:
struct ds18b20_handle_s
{
   ........
    uint8_t rom[8];
};

typedef struct ds18b20_handle_s ds18b20_handle_t;

ds18b20_info_t info;


也就是定义了一个结构体类型,名字叫 struct ds18b20_handle_s,
然后又给这个类型定义了一个别名,叫做 ds18b20_handle_t,
最后,定义了一个 ds18b20_handle_t 类型的变量,名叫 info
1