home *** CD-ROM | disk | FTP | other *** search
/ The C Users' Group Library 1994 August / wc-cdrom-cusersgrouplibrary-1994-08.iso / vol_100 / 161_01 / boolbits.c < prev    next >
C/C++ Source or Header  |  1985-08-29  |  827b  |  26 lines

  1. /* boolbits - time two different versions of bool macros */
  2. #include "timer1.h"
  3.     static char a[5] = {0};
  4.     short i = 4;
  5.  
  6. #define SETTRUE(barr, index)  (barr[(index)>>3] |= (1 << ((index) & 0x7)))
  7. #define SETFALSE(barr, index) (barr[(index)>>3] &= ~(1 << ((index) & 0x7)))
  8. #define TEST(barr, index) ((barr[(index)>>3] & (1 << ((index) & 0x7))) != 0)
  9.  
  10.     DO_IEXPR("SETTRUE-packed")    SETTRUE(a, i)    OD
  11.     DO_IEXPR("SETFALSE-packed")    SETFALSE(a, i)    OD
  12.     DO_IEXPR("TEST-packed")    TEST(a, i)    OD
  13.  
  14. #undef SETTRUE
  15. #undef SETFALSE
  16. #undef TEST
  17. #define SETTRUE(barr, index)  (barr[index] = 1)
  18. #define SETFALSE(barr, index) (barr[index] = 0)
  19. #define TEST(barr, index) (barr[index])
  20.  
  21.     DO_IEXPR("SETTRUE-unpacked")    SETTRUE(a, i)    OD
  22.     DO_IEXPR("SETFALSE-unpacked")    SETFALSE(a, i)    OD
  23.     DO_IEXPR("TEST-unpacked")    TEST(a, i)    OD
  24.  
  25.     }
  26.