我写在C的动态数组泛型编程
typedef struct __c_array {
void**_elem;
int cur_size;
int capacity;
}c_array;
我的界面是这样的:
extern void push_back_c_array (c_array*, void *);
现在,用户将不得不为元素分配内存以推进入阵列。有没有什么办法可以避免使用void *。
我想用这个做以下
int a = 5;
push_back_c_array (<ARRAY_PTR>, a);
这是可能的。
对typedef结构是有害的。它已经有了一个类型;所做的一切就是通过要求读者引用并记住typedef的基本类型来使更多的代码更复杂。 – 2011-03-31 06:57:25
你能解释一下吗? – Avinash 2011-03-31 06:59:36
我不同意'这是有害的typedef结构',在这种情况下,结构将是一个不透明的句柄,供他的用户使用该数组。 – IanNorton 2011-03-31 07:02:10