aboutsummaryrefslogtreecommitdiffstats
path: root/src/l4array2.h
diff options
context:
space:
mode:
authorLAN-TW <lantw44@gmail.com>2013-11-29 14:06:55 +0800
committerLAN-TW <lantw44@gmail.com>2013-11-29 14:06:55 +0800
commit218d5b0040f5438b383b3541ba208d9b51d4b9dd (patch)
treeb9514e92fe1abf2646b0e674590f20baa9e82211 /src/l4array2.h
parent768d6832af5e333c888532e696a6a93145979687 (diff)
downloadl4basic-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.h25
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