如何便捷获取枚举类型的最大值?

今天在看LWIP的代码,在定义一个枚举类型的时候使用了下面的操作,**即在类型中定义了一个没有意义的MEMP_MAX类型。**这就保证了不管在这之前你定义了多少种类型,MEMP_MAX这个值就是该枚举种类的数量。后面可以使用该值初始化数组啊什么的,非常灵活。

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

下面是上面代码的编译后结果。上面代码中的##是一个连接符,可以将MEMP和name连接成一个变量的名字。
如何便捷获取枚举类型的最大值?_第1张图片

你可能感兴趣的:(C++)