宏(Macro, define)的一个有趣用法

为了不忘记,随便写一点。

数据文件data.tbl:
data_tbl(john, 1, 2, 3),
data_tbl(mike, 3, 2, 1),
data_tbl(lily, 4, 2, 4),

在aa.h中:

#undefine data_tbl
#define data_tbl(name, x, y, z) name
enum {
#include "data.tbl"
name_max,
};

在aa.cpp中:

#undefine data_tbl
#define data_tbl(name, x, y, z) {x, y, z}
int gData[ ][ ] = {
#include "data.tbl"
};

大致如此,代码没有编译过。
这样就可以将数据集合在一起,方便修改。
唯一不爽的是每次修改数据文件,就相当于修改了.h文件,编译起来挺烦的,嘻嘻。
还有一些其他用法,以后想到了再说吧。

你可能感兴趣的:(宏(Macro, define)的一个有趣用法)