Advertisement
Guest User

Untitled

a guest
Mar 17th, 2018
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.70 KB | None | 0 0
  1. #ifndef BIT_ARRAY_H
  2. #define BIT_ARRAY_H
  3.  
  4. typedef unsigned long bit_array_t;
  5.  
  6. #define SIZE ((sizeof(unsigned long))*CHAR_BIT)
  7. #define bit_array_create(jmeno_pole,velikost) bit_array_t jmeno_pole[((velikost/(SIZE)) + (velikost%SIZE ? 1:0 )) + 1] ={[0]=velikost}
  8.  
  9.  
  10. #define bit_array_size(jmeno_pole) jmeno_pole[0]
  11.  
  12. #define bit_array_setbit(jmeno_pole,index,vyraz) \
  13. do{ \
  14. if(vyraz == 1) \
  15. jmeno_pole[index/SIZE +1] |= (1 << ( (index%SIZE) -1 ) ); \
  16. else if(vyraz == 0) \
  17. jmeno_pole[index/SIZE +1] &= ( ~(1 << ( (index%SIZE) -1 ) ) ); \
  18. }while(0)
  19.  
  20. #define bit_array_getbit(jmeno_pole,index) ((jmeno_pole[index/SIZE +1] & (1<< ((index%SIZE) -1)) ) ? 1:0 )
  21.  
  22. #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement