home *** CD-ROM | disk | FTP | other *** search
/ Geek Gadgets 1 / ADE-1.bin / ade-dist / pdksh-4.9-src.tgz / tar.out / contrib / pdksh / std / stdc / stdarg.h < prev    next >
C/C++ Source or Header  |  1996-09-28  |  727b  |  26 lines

  1. /* $Id: stdarg.h,v 1.3 93/05/05 21:18:21 sjg Exp $ */
  2. /* DON'T USE THIS IF YOUR COMPILER HAS ITS OWN!!! */
  3.  
  4. #ifndef _STDARG_H
  5. #define _STDARG_H
  6.  
  7. typedef char *va_list;
  8.  
  9. /* Amount of space required in an argument list for an arg of type TYPE.
  10.    TYPE may alternatively be an expression whose type is used.  */
  11.  
  12. #define __va_rounded_size(TYPE)  \
  13.   (((sizeof (TYPE) + sizeof (int) - 1) / sizeof (int)) * sizeof (int))
  14.  
  15. #define va_start(AP, LASTARG)                         \
  16.  (AP = ((char *) &(LASTARG) + __va_rounded_size (LASTARG)))
  17.  
  18. void va_end (va_list);        /* Defined in gnulib */
  19. #define va_end(AP)
  20.  
  21. #define va_arg(AP, TYPE)                        \
  22.  (AP += __va_rounded_size (TYPE),                    \
  23.   *((TYPE *) (AP - __va_rounded_size (TYPE))))
  24.  
  25. #endif /* _STDARG_H */
  26.