C語言宏定義技巧——多次包括頭文件內容不同
阿新 • • 發佈:2017-05-06
ear 文件 我們 art bsp enum class 包括 nbsp
1、 頭文件定義例如以下:
/* declears in “funcs.h” */
FUNC_1(ID_FUN1_001)
FUNC_1(ID_FUN1_002)
FUNC_2(ID_FUN2_001)
FUNC_2(ID_FUN2_002)
2、 多次包括頭文件
#define FUNC_1(opt) opt,
#define FUNC_2(opt)
enum aaa {
#include “funcs.h”
ID_FUN1_END
};
#undef FUNC_1
#undef FUNC_2
#define FUNC_1(opt)
#define FUNC_2(opt) opt,
enum bbb {
#include “funcs.h”
ID_FUN2_END
};
#undef FUNC_1
#undef FUNC_2
這樣。把宏翻譯之後。我們定義的兩個enum分別例如以下
enum aaa {
ID_FUN1_001,
ID_FUN1_002,
ID_FUN1_END
};
enum bbb {
ID_FUN2_001,
ID_FUN2_002,
ID_FUN2_END
};
C語言宏定義技巧——多次包括頭文件內容不同