DPDK研究之枚举类型

在DPDK中有个枚举类型,如下:
enum {
/* long options mapped to a short option */
#define OPT_PCI_WHITELIST "pci-whitelist"
OPT_PCI_WHITELIST_NUM = 'w',
#define OPT_PCI_BLACKLIST "pci-blacklist"
OPT_PCI_BLACKLIST_NUM = 'b',


/* first long only option value must be >= 256, so that we won't
 * conflict with short options */
OPT_LONG_MIN_NUM = 256,
#define OPT_HUGE_DIR    "huge-dir"
OPT_HUGE_DIR_NUM = OPT_LONG_MIN_NUM,
#define OPT_MASTER_LCORE "master-lcore"
OPT_MASTER_LCORE_NUM,
#define OPT_PROC_TYPE   "proc-type"
OPT_PROC_TYPE_NUM,
#define OPT_NO_SHCONF   "no-shconf"
OPT_NO_SHCONF_NUM,
#define OPT_NO_HPET     "no-hpet"
OPT_NO_HPET_NUM,
#define OPT_VMWARE_TSC_MAP   "vmware-tsc-map"
OPT_VMWARE_TSC_MAP_NUM,
#define OPT_NO_PCI      "no-pci"
OPT_NO_PCI_NUM,
#define OPT_NO_HUGE     "no-huge"
OPT_NO_HUGE_NUM,
#define OPT_FILE_PREFIX "file-prefix"
OPT_FILE_PREFIX_NUM,
#define OPT_SOCKET_MEM  "socket-mem"
OPT_SOCKET_MEM_NUM,
#define OPT_VDEV        "vdev"
OPT_VDEV_NUM,
#define OPT_SYSLOG      "syslog"
OPT_SYSLOG_NUM,
#define OPT_LOG_LEVEL   "log-level"
OPT_LOG_LEVEL_NUM,
#define OPT_BASE_VIRTADDR   "base-virtaddr"
OPT_BASE_VIRTADDR_NUM,
#define OPT_XEN_DOM0    "xen-dom0"
OPT_XEN_DOM0_NUM,
#define OPT_CREATE_UIO_DEV "create-uio-dev"
OPT_CREATE_UIO_DEV_NUM,
#define OPT_VFIO_INTR    "vfio-intr"
OPT_VFIO_INTR_NUM,
OPT_LONG_MAX_NUM

};


由于之前没有见过,所以对这个很好奇,但是从定义上看大致就是一个枚举类型,并且使用了很多宏定义。


测试代码:

<span style="font-size:18px;">#include <stdio.h>

enum{
test_1,
test_2,
#define test_log_1 123
test_256=256,
test_257,
test_258,
};


int main(void)
{
        printf("%d, %d, %d, %d, %d, %d\n", test_1, test_2, test_256, test_257, test_258, test_log_1);
        return 0;
}</span>

运行结果:
test]# ./test 
0, 1, 256, 257, 258, 123


结论:枚举类型中使用宏定义来给成员赋值

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值