【C语言】C语言之枚举定义和宏定义的技巧1

来源:互联网 发布:入门吉他推荐知乎 编辑:程序博客网 时间:2024/05/17 22:45

代码例举如下:

typedef enum {#define MEMPOOL(name,num,size,desc)  MEMP_##name,#include "memp_std.h"  MEMP_MAX} memp_t;

等同于

typedef enum {  MEMP_RAW_PCB,  MEMP_UDP_PCB,  MEMP_REASSDATA,  MEMP_MAX} memp_t;


代码解析:

1、#define MEMPOOL(name,num,size,desc)  MEMP_##name,

     将MEMPOOL(name,num,size,desc)代替为MEMP_##name

    例如"memp_std.h"文件里面包含如下的代码;

MEMPOOL(RAW_PCB,        MEMP_NUM_RAW_PCB,         sizeof(struct raw_pcb),        "123")MEMPOOL(UDP_PCB,        MEMP_NUM_UDP_PCB,         sizeof(struct udp_pcb),        "456")MEMPOOL(REASSDATA,      MEMP_NUM_REASSDATA,       sizeof(struct ip_reassdata),   "789")

     全部替换成

MEMP_RAW_PCB,MEMP_UDP_PCB,MEMP_REASSDATA,

2、枚举最后一个枚举元素一般写该枚举的总数量。



注:该方式和代码例举来源于LWIP源码中。

0 0
原创粉丝点击