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
 | ||
|  | 
 |