我寫在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