高级枚举型定义实现

C源文件

#include <sys/stat.h>
#include <fcntl.h>
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <stdlib.h>
/*
实现原理说明:
首先在枚举型结构体中定义宏定义 #define ENUM_(name,num,size,desc)  MACRO_##name = num,
然后在引入头文件,头文件包含的宏定义的调用将在这里进行展开,展开之后,会得到一个由宏定义扩展之后的
枚举型结构体
*/
enum MACRO_ENUM
{#define ENUM_(name,num,size,desc)  MACRO_##name = num,#include "enum_example.h"MACRO_MAX,
};int main(int argc, char *argv[])
{/* 经过宏扩展的之后的枚举型变量大小 */printf("after macro MACRO_MAX = [%d]\n", MACRO_MAX);return 0;
}

enum_example.h

/*** @brief  宏定义实现枚举型的扩展* @    该头文件仅用于扩展对应文件宏定义*/#define EXAM1_SIZE 1ENUM_(EXAM1,EXAM1_SIZE,sizeof(int),"this is a enum example")#define EXAM2_SIZE 2
ENUM_(EXAM2,EXAM1_SIZE,sizeof(int),"this is a enum example")#define EXAM3_SIZE 30
ENUM_(EXAM3,EXAM3_SIZE,sizeof(int),"this is a enum example")

enum-使用宏管理你的枚举型数据相关推荐

  1. 【原创】VBA里的枚举型数据enum

    一 比较三种数据类型 enum   枚举型,数值类型  eNum array    数组 dictionary   字典 二 枚举型 1.1 枚举型  enum  需要先用户自定义 放在过程外,模块最 ...

  2. Labview | 条件结构之枚举型数据

    设计步骤 控件加入:枚举型控件位于控件选板的"控件-新式-下拉列表与枚举-枚举" 在控件的右键快捷菜单中选择"编辑项",在对话框中插入"不及格&quo ...

  3. C/C++结构体struct 与结构体数组和枚举型enum的结合使用

    C/C++结构体struct 与结构体数组和枚举型enum的结合使用 #include "stdafx.h" #include <string> #include &l ...

  4. c语言如何宏定义枚举型结构体,C语言学习笔记--枚举结构体

    枚举 枚举是一种用户定义的数据类型,它用关键字enum以如下语法格式来声明: enum 枚举类型名字 {名字0,名字1,...,名字n}: 枚举类型名字通常并不真的使用,要用的是大括号里面的名字,因为 ...

  5. java enum枚举型使用

    1.使用枚举型定义常量 我们定义常量都是: public static final- ,现在使用枚举型定义. public enum ResultCode {SUCCESS(1, "请求成功 ...

  6. ☆ C/C++ 枚举型变量(enum)与布尔型变量(bool)

    ★C语言常见的数据类型有: 整型 浮点型 字符型 数组 结构体 指针 ★这里就来介绍枚举型(enum)与布尔型(bool): ************************************* ...

  7. C语言枚举型复习笔记

    枚举类型 1.定义枚举类型 语法格式:enum [枚举名称]{枚举常量标识符列表}[变量名列表] 例如: enum WeekDay{sun,mon,tue,wed,thu,fri,sat}a,b,c; ...

  8. C# Enum,Int,String的互相转换 枚举转换

    Enum为枚举提供基类,其基础类型可以是除 Char 外的任何整型.如果没有显式声明基础类型,则使用 Int32.编程语言通常提供语法来声明由一组已命名的常数和它们的值组成的枚举.注意:枚举类型的基类 ...

  9. (转)C# Enum,Int,String的互相转换 枚举转换

    (转)C# Enum,Int,String的互相转换 枚举转换 Enum为枚举提供基类,其基础类型可以是除 Char 外的任何整型.如果没有显式声明基础类型,则使用 Int32.编程语言通常提供语法来 ...

最新文章

  1. 刻意练习:LeetCode实战 -- Task15. 有效的括号
  2. 打印给定字符串中字符的所有排列
  3. cnetos6.2搭建mysql_CentOS 6.2安装配置LAMP服务器(Apache+PHP5+MySQL)
  4. MYSQL大小写的约定
  5. $routeParams $route.current.params
  6. 学习在.NET Core中使用RabbitMQ进行消息传递之持久化(二)
  7. javaee和javaee_JavaEE概念简介
  8. 大数据技术之kafka (第 3 章 Kafka 架构深入) Kafka 事务
  9. php yii框架连接数据库,【PHP开发框架】yii框架怎样衔接数据库
  10. AIX5.3安装oracle10g
  11. MySQL单列索引和组合索引的创建及区别介绍
  12. DP动态规划【专辑@AbandonZHANG】
  13. 计算机网络 第七版【谢希仁】部分答案(第1~7章)【附:电子书】
  14. 2022年自考专业(工商企业管理)电子商务概论练习题
  15. 专精特新企业数据库-专精特新企业名单及汇总
  16. matlab高尔顿板钉试验,高尔顿钉板试验模拟
  17. 一个架构师谈什么是架构以及怎么成为一个架构师
  18. Renderdoc调试总结
  19. php结合HTML表格输出乘法表
  20. cab文件如何安装或者转换为exe文件?

热门文章

  1. C语言运算符优先级 详细列表
  2. hdu 1937(尺取法)
  3. NYOJ 594 还是A+B
  4. NYOJ 118 修路方案(次小生成树)
  5. hdu 1087 Super Jumping! Jumping! Jumping! 动态规划
  6. StringTokenizer类的使用方法
  7. 洛谷 [P1024]一元三次方程求解【二分答案】
  8. 清北学堂模拟赛d6t3 反击数
  9. 前端编码规范,个人感觉bootstrap总结的不错,拿出来给大家分享
  10. 符号化Symbol(符号)体系(转载)