home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1994 March / Source_Code_CD-ROM_Walnut_Creek_March_1994.iso / win3 / patches / symantec / rtlinc.exe / VARARGS.H < prev    next >
C/C++ Source or Header  |  1993-05-18  |  649b  |  30 lines

  1. /*_ varargs.h   1993   Modified by: Walter Bright */
  2. /* Unix C style variable arguments    */
  3.  
  4. #ifndef __VARARGS_H
  5. #define __VARARGS_H    1
  6.  
  7. #if __INTSIZE == 4
  8. #define __VA_ALIGN    3
  9. #else
  10. #define __VA_ALIGN    1
  11. #endif
  12.  
  13. /* Aligned size on stack */
  14. #define __va_size(type) ((sizeof(type) + __VA_ALIGN) & ~__VA_ALIGN)
  15.  
  16. #if 1
  17. #define __SS
  18. #else
  19. #define __SS    __ss
  20. #endif
  21.  
  22. typedef void __SS *va_list;
  23. #define va_dcl        int va_alist;
  24. #define va_start(ap)    ((ap) = (va_list)&(va_alist))
  25. #define va_arg(ap,type)    (*(type __SS *)(((char __SS *)(ap)+=__va_size(type))-(__va_size(type))))
  26. #define va_end(ap)    ((void)0)
  27.  
  28. #endif /* __VARARGS_H */
  29.  
  30.