打印

有趣的数组定义

[复制链接]
1830|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zyboy|  楼主 | 2009-6-29 09:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
现在采样的uip协议栈,感觉写的不是很好,里面好多goto语句,但代码比较少,适合少RAM,最近想采用LWIP协议栈,因为有许多应用层协议移植包括SNMP,telnet等,感觉这方面lWIP做的不错。移植遇到ARM字对齐的问题,也挺有趣的,有空再讲讲。言归正传,谈谈移植时遇到的数组,呵呵

static u8_t memp_memory[MEM_ALIGNMENT - 1 
#define LWIP_MEMPOOL(name,num,size,desc) + ( (num) * (MEMP_SIZE + MEMP_ALIGN_SIZE(size) ) )
#include "lwip/memp_std.h"
];

memp_std.h文件中部分代码

#if LWIP_RAW
LWIP_MEMPOOL(RAW_PCB,        MEMP_NUM_RAW_PCB,         sizeof(struct raw_pcb),        "RAW_PCB")
#endif /* LWIP_RAW */

#if LWIP_UDP
LWIP_MEMPOOL(UDP_PCB,        MEMP_NUM_UDP_PCB,         sizeof(struct udp_pcb),        "UDP_PCB")
#endif /* LWIP_UDP */

#if LWIP_TCP
LWIP_MEMPOOL(TCP_PCB,        MEMP_NUM_TCP_PCB,         sizeof(struct tcp_pcb),        "TCP_PCB")
LWIP_MEMPOOL(TCP_PCB_LISTEN, MEMP_NUM_TCP_PCB_LISTEN,  sizeof(struct tcp_pcb_listen), "TCP_PCB_LISTEN")
LWIP_MEMPOOL(TCP_SEG,        MEMP_NUM_TCP_SEG,         sizeof(struct tcp_seg),        "TCP_SEG")
#endif /* LWIP_TCP */

#undef LWIP_MEMPOOL

怪把,在数组里面有宏定义,有文件包含,这些都是预处理的的东东。呵呵。代码是了解了,感觉这样数组变成动态数组了。不过希望大侠问讲解一下,感觉自己也不是非常清晰,深入讲一下预处理,谢谢大家了

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

101

主题

356

帖子

0

粉丝