47 lines
994 B
C
47 lines
994 B
C
![]() |
#ifndef bytearray_h__
|
||
|
#define bytearray_h__
|
||
|
|
||
|
#include "stdint.h"
|
||
|
|
||
|
struct _array_def;
|
||
|
typedef struct _array_def array_def;
|
||
|
|
||
|
|
||
|
|
||
|
array_def *arr_creat(void);
|
||
|
uint8_t arr_get(array_def *a,int index);
|
||
|
array_def *arr_mid(array_def *a,int start,int len);
|
||
|
uint8_t *arr_data(array_def *a);
|
||
|
int arr_length(array_def *a);
|
||
|
int arr_remove(array_def *a,int start,int len);
|
||
|
char *arr_string(array_def *a);
|
||
|
|
||
|
|
||
|
#define arr_delete(a) {free(a);a=0;}
|
||
|
#define arr_append(a,d) _arr_append(&a,d)
|
||
|
#define arr_appends(a,d,len) for(int i=0;i<len;i++){_arr_append(&a,((uint8_t *)d)[i]);}
|
||
|
#define arr_appends_from(a,b) {\
|
||
|
uint8_t *d=arr_data(b);\
|
||
|
arr_appends(a,d,arr_length(b));}
|
||
|
#define arr_append_num(a,num,d) for(int i=0;i<num;i++){_arr_append(&a,d);}
|
||
|
#define arr_clear(a) arr_remove(a,0,arr_length(a))
|
||
|
#define arr_duplicate(a) arr_mid(a,0,arr_length(a))
|
||
|
|
||
|
// 转化为临时指针
|
||
|
#define arr_temp(a) tappend(a,0)
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
array_def *_arr_append(array_def **a,uint8_t d);
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
#endif
|
||
|
|