|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
% a R) q. L0 p4 w4 |
- e2 e( \. u' Y( \
. c- w7 Z! Q4 q8 u9 w+ Q9 r* ~$ kNX二次开发源码分享:封装一个函数--将ufun的链表转化成数组
0 g5 \/ U& L2 H2 u2 z) k
& K0 \+ I0 \5 k% J
/ Q/ m' s2 ]5 i+ Cstatic int allocate_memory(unsigned int nbytes, void **where)" H0 _1 I5 v, c4 y0 e' `: J
{
, H+ ^0 R" b0 a" O. N0 M% i3 B int
0 l1 y$ A4 W$ B8 Z1 i( u, e8 e4 | resp;
5 {% C2 i' x( i9 N. S; E( b& \1 p% ?* A) D. K. C
*where = UF_allocate_memory(nbytes, &resp);! s# K% x2 o/ c. O
7 n: G7 n+ [* g j; p+ V6 l- j return resp;
( @4 B* E$ d; M2 x* t" C& h( e}" ~* e8 z" |* F" L$ V% b/ [/ f' v
; q5 i+ I. ~- @1 r, cstatic int make_an_array(uf_list_p_t *object_list, tag_t **objects) q1 C! [3 Y; C& d0 Z
{
" x& W- ?" y+ ^& ~ int+ H4 X- N8 {9 }6 t+ K' t1 A
ii,6 [) v6 I D _4 x7 H2 c/ W; o% D
n;' V$ k1 ]( W& Y! ]4 H/ Q; k
uf_list_p_t% j3 m, Y) [- g* ^2 H
temp;
/ H2 t1 g/ b7 ?9 w/ q2 j9 y. q' Y4 W: r" V
UF_CALL(UF_MODL_ask_list_count(*object_list, &n));, Y% G& \. \5 d6 \/ o
+ \1 Z; L a" h i+ w UF_CALL(allocate_memory(n * sizeof(tag_t), (void **)objects));+ z# b1 {; Y; J* x5 i
; L4 L/ s5 Z: {, Z
for (ii = 0, temp = *object_list; ii < n; temp = temp->next, ii++)* W& A! Z: Z! t2 w% e
(*objects)[ii] = temp->eid;$ [; l; n0 t, W# t
7 u# X* c* v0 x2 I& N
UF_CALL(UF_MODL_delete_list(object_list));
- q6 s. _7 C) f2 ^: @; L+ z& p- P8 e
return n;' u8 p* o2 p! R6 k x* M |
}8 q6 C6 m- \9 R: s0 r
3 B5 C, _2 i9 T/ J* J
- j- ]- Z/ l, O, X |
|