@@ -73,6 +73,50 @@ void bsp_destroy_array_t(bsp_array_t array) {
73
73
free (array .data );
74
74
}
75
75
76
+ #define bsp_array_block (array , ptr , code_block ) \
77
+ { \
78
+ if (array.type == BSP_UINT8) { \
79
+ uint8_t* ptr = array.data; \
80
+ code_block; \
81
+ } else if (array.type == BSP_UINT16) { \
82
+ uint16_t* ptr = array.data; \
83
+ code_block; \
84
+ } else if (array.type == BSP_UINT32) { \
85
+ uint32_t* ptr = array.data; \
86
+ code_block; \
87
+ } else if (array.type == BSP_UINT64) { \
88
+ uint64_t* ptr = array.data; \
89
+ code_block; \
90
+ } else if (array.type == BSP_INT8) { \
91
+ int8_t* ptr = array.data; \
92
+ code_block; \
93
+ } else if (array.type == BSP_INT16) { \
94
+ int16_t* ptr = array.data; \
95
+ code_block; \
96
+ } else if (array.type == BSP_INT32) { \
97
+ int32_t* ptr = array.data; \
98
+ code_block; \
99
+ } else if (array.type == BSP_INT64) { \
100
+ int64_t* ptr = array.data; \
101
+ code_block; \
102
+ } else if (array.type == BSP_FLOAT32) { \
103
+ float* ptr = array.data; \
104
+ code_block; \
105
+ } else if (array.type == BSP_FLOAT64) { \
106
+ double* ptr = array.data; \
107
+ code_block; \
108
+ } else if (array.type == BSP_BINT8) { \
109
+ int8_t* ptr = array.data; \
110
+ code_block; \
111
+ } else if (array.type == BSP_COMPLEX_FLOAT32) { \
112
+ float _Complex* ptr = array.data; \
113
+ code_block; \
114
+ } else if (array.type == BSP_COMPLEX_FLOAT64) { \
115
+ double _Complex* ptr = array.data; \
116
+ code_block; \
117
+ } \
118
+ }
119
+
76
120
// array[index] = value
77
121
#define bsp_array_write (array , index , value ) \
78
122
{ \
0 commit comments