【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
- 【C语言】C语言之枚举定义和宏定义的技巧1
- C语言的枚举与宏定义
- C语言宏定义技巧
- C语言宏定义技巧
- C语言宏定义技巧
- C语言宏定义技巧
- C语言宏定义技巧
- C语言宏定义技巧
- C语言宏定义技巧
- C语言宏定义技巧
- C语言宏定义技巧
- C语言宏定义技巧
- C语言宏定义技巧
- C语言宏定义技巧
- C语言宏定义技巧
- C语言宏定义技巧
- C语言宏定义技巧
- C语言宏定义技巧
- Javascript创建对象的学习和使用
- 解决window.colse()不管用的问题
- 一千行MySQL学习笔记
- android两种方式获取AsyncTask返回值
- Too many open files 错误解决方案
- 【C语言】C语言之枚举定义和宏定义的技巧1
- jQuery validate远程验证跟只显示第一条未通过结果
- iOS SDWebImage
- 解决LineChart 标签被屏幕遮盖问题
- JavaTM Platform Standard Edition 6 API 规范
- 2017系统架构设计师的通过人数与通过率探秘
- 【编程题目】Pq.8--求单向链表的倒数第k个节点(关于代码鲁棒性的探讨)
- 机器学习&深度学习视频资料大汇总
- FFmpeg总结(七)AV系列结构体之AVIOContext