近日开始阅读野火《LwIP 应用开发实战指南》,遇到不懂的地方写下笔记,与同好分享。本人水平有限,如有不对,请留言指正。
第一个问题: 对动态内存池的枚举宏定义的理解

野火的解释如图:

我用例程来理解上述野火的解释:(编译环境ubuntu18.04)
#include <stdio.h>
enum spectrum {
red, //0
orange, //1
yellow, //2
green, //3
blue, //4
violet //5
};
typedef enum{
//为演示方便,去掉了size参数
#define LWIP_MEMPOOL(name,num,desc) MEMP_##name,
LWIP_MEMPOOL(RAW_PCB,MEMP_NUM_RAW_PCB,"RAW_PCB")//0
LWIP_MEMPOOL(UDP_PCB,MEMP_NUM_UDP_PCB,"UDP_PCB")//1
LWIP_MEMPOOL(TCP_PCB,MEMP_NUM_TCP_PCB,"TCP_PCB")//2
//LWIP_MEMPOOL(MY_PCB,MEMP_NUM_MY_PCB,"MY_PCB")
MEMP_MAX
}memp_t;
void main()
{
printf("color.blue=%d\n",blue);
printf("MEMP_MAX=%d\n",MEMP_MAX);
}