gpt4 book ai didi

c - linux以太网框架套接字说明

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:52:18 27 4
gpt4 key购买 nike

我试图理解在 google 中找到的示例套接字代码中的以下几行。

struct ether_header *eh = (struct ether_header *) sendbuf;
struct iphdr *iph = (struct iphdr *) (sendbuf + sizeof(struct ether_header));

struct ether_header *eh -> 目前已知*eh用于访问struct变量

我只想理解这些赋值

  1. (struct ether_header *) sendbuf;
  2. (struct iphdr *) (sendbuf + sizeof(struct ether_header));

最佳答案

在第一行

(struct ether_header *) sendbuf;

变量 sendbuf 被转换为指向 struct ether_header 的指针,您可以阅读更多关于转换的信息 here

第二行

(struct iphdr *) (sendbuf + sizeof(struct ether_header));

它将 sizeof(struct ether_header) 添加到指针 sendbuf 中,通过这样做,它到达了指向 struct ether_header 的指针所占用的内存区域之后,它似乎包含指向结构 iphdr

的指针

这是sendbuf的示意图

+------------------------------------------------------+
| eh |
+------------------------------------------------------+
| iph = eh + sizeof(struct ether_header) |
+------------------------------------------------------+

-- sendbuf --

关于c - linux以太网框架套接字说明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24889459/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com