- 论坛徽章:
- 15
|
本帖最后由 yulihua49 于 2010-09-04 11:55 编辑
我的基本思路是这样的。
写一个模板。
比如:
原:struct man
{
char name[21];
int age;
};
#include <pack.h>
T_PkgType man_tpl[]={
{CH_CHAR,21,"name",0,-1},
{CH_INT,sizeof(int),"age"},
{-1,0,0,0}
};
然后,有一对与字符串互转的程序,你提供它结构,模板,buff,它给你转到buff去,你打印,存取或网络传输,都可以。
如:
struct man m;
char buff[256];
strcpy(m.name,"myname");
m.age=30;
pkg_pack(&buf,&m,man_tpl,'|');
printf("m=%s\n",buff);
结果:
myname|30|yulihua49 发表于 2010-09-04 11:38 ![]()
为每个结构配模板,不是很繁嘛?就采用元数据man.meta:
TEMPLATE man 2
neme:=CH_CHAR 21
age:=CH_INT
经过模板生成器:
mktpl
请输入元数据文件名:man.meta
就生成了前边的结构和模板。拿到C程序里用即可。
这就是元编程的一种方法,目前已实现,开源的。
如果是数据库里的表,元编程也省了。直接可以生成对应的结构和模板。 |
|