home *** CD-ROM | disk | FTP | other *** search
/ The Datafile PD-CD 4 / DATAFILE_PDCD4.iso / unix / unixlib36d / clib / h / varargs < prev   
Text File  |  1994-02-26  |  575b  |  27 lines

  1. /* varargs.h (c) Copyright 1990 H.Rogers */
  2.  
  3. #ifndef __VARARGS_H
  4. #define __VARARGS_H
  5. #define __STDARG_H
  6.  
  7. #ifdef __cplusplus
  8. extern "C" {
  9. #endif
  10.  
  11. typedef char *va_list;
  12.  
  13. #define va_align(x)    (((x) + (sizeof(int) - 1)) & (~(sizeof(int) - 1)))
  14.  
  15. #define va_dcl        int va_alist;
  16. #define va_start(a)    ((void)(a = (char *)(&va_alist)))
  17. #define va_arg(a,t)    ((sizeof(t) > sizeof(int)) ? \
  18.     *(t *)(((a) += va_align(sizeof(t))) - va_align(sizeof(t))) : \
  19.     (t)(*(int *)(((a) += sizeof(int)) - sizeof(int))))
  20. #define va_end(a)    ((void)((a) = (char *)-1))
  21.  
  22. #ifdef __cplusplus
  23.     }
  24. #endif
  25.  
  26. #endif
  27.