vec.h (941B)
1 #define Vecadd(p) Vecadd_((void**)p) 2 #define Vecaddv(p, a, type) *(type*)Vecadd(p) = a 3 #define Vecclose(p) Vecclose_((void**)p) 4 #define Vecdel(p, n) Vecdel_((void**)p, n) 5 #define Vecinit(p) Vecinit_((void**)p, sizeof(*p[0]), NULL, NULL) 6 #define Vecinitf(p, i, c) Vecinit_((void**)p, sizeof(*p[0]), i, c) 7 #define Vecinsure(p, n) Vecinsure_((void**)p, n); 8 #define Veczero(p) Veczero_((void**)p); 9 10 typedef struct { 11 void (*init)(); 12 void (*close)(); 13 unsigned long ms; /*member size*/ 14 unsigned long n; 15 unsigned long size; 16 } Vector; 17 18 /* These take the vector pointer as arguments */ 19 Vector* Vec(void* p); 20 unsigned long Vecsiz(void* p); 21 22 /* These take the address of the vector pointer */ 23 void* Vecadd_(void** p); 24 void Vecclose_(void** p); 25 void Vecdel_(void** p, unsigned long n); 26 void Vecinit_(void** p, unsigned long ms, void (*init)(), void (*close)()); 27 void Vecinsure_(void** p, unsigned long n); 28 void Veczero_(void** p);