home *** CD-ROM | disk | FTP | other *** search
/ Carousel Volume 2 #1 / carousel.iso / mactosh / unix / unix_dra.hqx / types.h < prev   
C/C++ Source or Header  |  1987-02-14  |  636b  |  21 lines

  1. /* a 32 (or more) bit integer (signed) */
  2. typedef int i32;
  3.  
  4. /* macros to sign extend quantities that are less than 32 bits long */
  5. /* Sun mishandles (int)(char)(constant) */
  6. #ifndef sun
  7. #define Sign8(n)    ((int)(char)(n))
  8. #else
  9. #define Sign8(n)    (((n) << 24) >> 24)
  10. #endif
  11. #define Sign16(n)    ((int)(short)(n))
  12. /* #define Sign24(n)    ((n) & (1<<23) ? ((n)|0xff000000) : (n)) */
  13. #define Sign24(n)    (((n) << 8) >> 8)
  14.  
  15. /* macros to truncate quantites that are signed but shouldn't be */
  16. #define UnSign8(n)    ((n) & 0xff)
  17. #define UnSign16(n)    ((n) & 0xffff)
  18. #define UnSign24(n)    ((n) & 0xffffff)
  19.  
  20. /* note that we never have unsigned 32 bit integers */
  21.