#ifndef __BASICS_H #define __BASICS_H #ifndef MAKE_ID #ifndef __BIG_ENDIAN__ #define MAKE_ID(a,b,c,d) ((uint32_t)((a)|((b)<<8)|((c)<<16)|((d)<<24))) #else #define MAKE_ID(a,b,c,d) ((uint32_t)((d)|((c)<<8)|((b)<<16)|((a)<<24))) #endif #endif #ifdef __GNUC__ #define GCCPRINTF(stri,firstargi) __attribute__((format(printf,stri,firstargi))) #define GCCFORMAT(stri) __attribute__((format(printf,stri,0))) #define GCCNOWARN __attribute__((unused)) #else #define GCCPRINTF(a,b) #define GCCFORMAT(a) #define GCCNOWARN #endif template char(&_ArraySizeHelper(T(&array)[N]))[N]; #define countof( array ) (sizeof( _ArraySizeHelper( array ) )) #endif