enum-使用宏管理你的枚舉型數據

高級枚舉型定義實現

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 1

ENUM_(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")

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章