有趣的数组定义

[复制链接]
2270|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

粉丝
快速回复 在线客服 返回列表 返回顶部