- 积分
- 1057
- 明经币
- 个
- 注册时间
- 2004-3-5
- 在线时间
- 小时
- 威望
-
- 金钱
- 个
- 贡献
-
- 激情
-
|
发表于 2004-3-9 23:34:00
|
显示全部楼层
如果是普通的数据并到LIST数据链 Tx,很简单,比如整数,
buf = ads_buildlist(RTLONG, mynum, 0);
建立一个主结点;
如果是LIST数据链MyList 要并入Tx,必须在数据链MyList的并入处的前、后分别插入RTLB,和 RTLE结点。
比如,现有整数 n, LIST数据链MyList, 实数r 三组数据:
void Demo (int n, struct resbuf MyList, ads_real r) { struct resbuf head=NULL, end, tmp, p;
head = ads_buildlist(RTLONG, n, 0); end = head;
tmp = ads_buildlist(RTLB, 0); end->rbnext = tmp; end = tmp;
for (p = MyList; p; p=p->rbnext) { tmp = xxx_DupLIst (p); //把一个结点的数据复制过来,具体实现 (略) end->rbnext = tmp; end= tmp; }
tmp = ads_buildlist(RTLE, 0); end->rbnext = tmp; end = tmp;
tmp = ads_buildlist(RTREAL, r, 0); end->rbnext = tmp; end = tmp;
ads_retlist(head); }
在LISP中用(nth)就可以依次取出数据。
对于整数,最好用RTLONG,而不要用RTINT,否则可能会使大的整数失真。
我上面是用ADS函数编写,与ARX完全兼容。事实上这样做更为简单些。 |
|