C语言
文章平均质量分 66
流风回雪1988
这个作者很懒,什么都没留下…
展开
-
TCP/IP协议栈之LwIP-pbuf
pbuf结构体就是一个描述协议栈中数据包的数据结构:next是一个pbuf类型的指针,指向下一个pbuf,因为网络中的数据包可能很大,而pbuf能管理的数据包大小有限,就会采用链表的形式将所有的pbuf包连接起来,这样子才能完整描述一个数据包,这些连接起来的pbuf包会组成一个链表,称之为pbuf链表。payload是一个指向数据区域的指针,指向该pbuf管理的数据区域起始地址,这里的数据区域可以是紧跟在pbuf结构体地址后面的RAM空间,也可以是ROM中的某个地址上,取决于pbuf的类型。to转载 2022-06-27 20:29:23 · 1517 阅读 · 0 评论 -
结构体后面定义一个空数组的含义
最近在写C代码,经常看到Linux 的头文件中有的结构体后面会定义一个空数组,不知道其为何作用?经过高人指点终于明白其要点!struct inotify_event { __s32 wd; __u32 mask; __u32 cookie; __u32 len; char name[0];};如上,结构体最后一个元素name为空数组。这是个广泛使用的常见技巧,常用来构成缓冲区。如果你是做嵌入式开发,这种技巧应该用得漫天飞了。 比起指针用空数组有这样的优势:...转载 2022-01-12 17:52:43 · 1364 阅读 · 0 评论 -
GCC全过程详解+剖析生成的.o文件(2)
基于上一篇的相关介绍,这里来实战一下:上一篇见https://blog.csdn.net/zwl1584671413/article/details/108146790比如现在我这边生成了一个可烧录的二进制文件,领导让我估算一下当前的固件会占用多少ram?多少flash?这个时候,就需要去分析生成的目标文件的各个section了,如 .data, .text, .bss, .rodata等;首先,进入我这边和一个最终生成的目标文件的目录下,我们先ls一下:其中cmcp.bin是...原创 2021-02-26 14:58:27 · 489 阅读 · 0 评论 -
C语言指针加1
C语言中的指针加1并不只是简单的地址加1而已,实际上指针加1,地址偏移的多少是与指针的类型相关的。demo如下: int main() { char arr1[10]; char *p1 = &arr1[0]; printf("%d \n", p1); printf("%d \n", p1+1); //p1+1地址偏移了一个sizeof(char) int arr2[10]; int *p2 = &..转载 2020-12-31 14:19:36 · 3210 阅读 · 1 评论