Choco OS  V.0.16.9.0
Join to the chocolate world
oc_array.h
Go to the documentation of this file.
1 
28 #ifndef SYSTEM_CORE_OC_ARRAY_H_
29 #define SYSTEM_CORE_OC_ARRAY_H_
30 
31 //==========================================================================================================================================
35 //==========================================================================================================================================
36 #define oC_ARRAY_SIZE( ARRAY ) ( sizeof(ARRAY) / sizeof(ARRAY[0]) )
37 #define oC_ARRAY_ELEMENT_REFERENCE( ARRAY , INDEX ) &ARRAY[ INDEX ]
38 #define oC_ARRAY_LAST_ELEMENT_INDEX( ARRAY ) (oC_ARRAY_SIZE(ARRAY) - 1)
39 #define oC_ARRAY_LAST_ELEMENT( ARRAY ) ARRAY[ oC_ARRAY_LAST_ELEMENT_INDEX(ARRAY) ]
40 #define oC_ARRAY_LAST_ELEMENT_REFERENCE( ARRAY ) &oC_ARRAY_ELEMENT_REFERENCE( ARRAY , oC_ARRAY_LAST_ELEMENT_INDEX(ARRAY))
41 #define oC_ARRAY_IS_INDEX_CORRECT( ARRAY , INDEX ) ( INDEX < oC_ARRAY_SIZE(ARRAY) )
42 #define oC_ARRAY_FOREACH_IN_ARRAY_WITH_SIZE(ARRAY,SIZE,ELEMENT) for( __typeof__(ARRAY[0]) * ELEMENT = ARRAY ; ELEMENT < &ARRAY[SIZE]; ELEMENT++)
43 #define oC_ARRAY_FOREACH_IN_ARRAY(ARRAY,ELEMENT_NAME) oC_ARRAY_FOREACH_IN_ARRAY_WITH_SIZE(ARRAY,oC_ARRAY_SIZE(ARRAY),ELEMENT_NAME)
44 #define oC_ARRAY_FOREACH_BREAK(ARRAY) break
45 
46 #endif /* SYSTEM_CORE_OC_ARRAY_H_ */