《C语言的指针结构体使用笔记1》

本文介绍了在C语言中如何使用带有联合的结构体指针。通过示例展示了如何声明和使用结构体指针,以及如何通过点(.)操作符访问联合内的成员,进一步解释了成员内部的成员可以通过箭头(->)操作符进行引用。在实际应用中,这种技巧常用于ESP8266等嵌入式开发。
摘要由CSDN通过智能技术生成

《C语言的指针 带有联合的结构体使用笔记》

使用带有联合的结构体,如果将结构体声明为指针。需要这样做:
结构体原型:
struct espconn {
/** type of the espconn (TCP, UDP) /
enum espconn_type type;
/
* current state of the espconn */
enum espconn_state state;
union {
esp_tcp tcp;
esp_udp udp;
} proto;
/
A callback function that is informed about events for this espconn */
espconn_recv_callback recv_callback;
espconn_sent_callback sent_callback;
uint8 link_cnt;
void *reverse;
};
声明如下:
struct espconn *pesp_conn = (struct espconn *)arg;
使用如下:
pesp_conn->proto.tcp
指针可以指向这个联合,
联合里面的成员必须以点(.)引出。
成员里面的成员还是以指针形式指向如:(->)

下面是我在实际应用是遇到的例子:

struct espconn *pesp_conn = (struct espconn *)arg;
esp_tcp a_esptcp;
os_memcpy(&a_esptcp, pesp
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值