借助于宏定义可以实同抽象工厂模式,而且代码简少。如:
struct ems_class
{
char *name;
rt_int16_t flag;
rt_int16_t size;
ems_type_t family;
ems_handler_t handler;
};
#define DECLARE_CLASS(name) _declspec(dllimport) const struct ems_class _ems_class_##name
以下代码为调用
int main(int argc, char* argv[]) /* I - Command-line args */
{
DECLARE_CLASS(yujie);
_ems_class_yujie.name="55";
DECLARE_CLASS(dinfang);
_ems_class_dinfang.name="ding26";
}