diff options
author | LAN-TW <lantw44@gmail.com> | 2013-11-29 14:06:55 +0800 |
---|---|---|
committer | LAN-TW <lantw44@gmail.com> | 2013-11-29 14:06:55 +0800 |
commit | 218d5b0040f5438b383b3541ba208d9b51d4b9dd (patch) | |
tree | b9514e92fe1abf2646b0e674590f20baa9e82211 /src/l4array2.h | |
parent | 768d6832af5e333c888532e696a6a93145979687 (diff) | |
download | l4basic-218d5b0040f5438b383b3541ba208d9b51d4b9dd.tar l4basic-218d5b0040f5438b383b3541ba208d9b51d4b9dd.tar.gz l4basic-218d5b0040f5438b383b3541ba208d9b51d4b9dd.tar.bz2 l4basic-218d5b0040f5438b383b3541ba208d9b51d4b9dd.tar.lz l4basic-218d5b0040f5438b383b3541ba208d9b51d4b9dd.tar.xz l4basic-218d5b0040f5438b383b3541ba208d9b51d4b9dd.tar.zst l4basic-218d5b0040f5438b383b3541ba208d9b51d4b9dd.zip |
Refactor build system and combine some files
Diffstat (limited to 'src/l4array2.h')
-rw-r--r-- | src/l4array2.h | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/l4array2.h b/src/l4array2.h new file mode 100644 index 0000000..e10fc0b --- /dev/null +++ b/src/l4array2.h @@ -0,0 +1,25 @@ +#ifndef L4LIB_DYNAMIC_ARRAY_D2 +#define L4LIB_DYNAMIC_ARRAY_D2 + +/*********** 二維陣列 (其實是用一維陣列來模擬,功能有限) ***********/ + +typedef struct l4lib_dyn_2darr{ + int arr_itemsize; /* 每個項目的大小 */ + int arr_lenx; /* 陣列 x 方向長度 */ + int arr_leny; /* 陣列 y 方向長度 */ + void* arr_data; /* 資料區 */ +} L4DA2 ; + +L4DA2* l4da2_create(int, int, int); +void l4da2_free(L4DA2*); +#define l4da2_getlenx(arr) ((arr)->arr_lenx) +#define l4da2_getleny(arr) ((arr)->arr_leny) +#define l4da2_itemsize(arr) ((arr)->arr_itemsize) +#define l4da2_data(arr) ((arr)->arr_data) +#define l4da2_v(arr, type, numx, numy) \ + (*(((type*)((arr)->arr_data))+((numx)*(l4da2_getleny(arr)))+(numy))) +#define l4da2_vp(arr, numx, numy) \ + ((void*)(((char*)((arr)->arr_data))+ \ + ((arr)->arr_itemsize)*((numx)*(l4da2_getleny(arr))+(numy)))) + +#endif |