stdarg.h
1 #ifndef STDARG_H 2 #define STDARG_H 3 4 // Variable argument macros for i386 5 typedef char* va_list; 6 7 #define __va_rounded_size(TYPE) \ 8 (((sizeof(TYPE) + sizeof(int) - 1) / sizeof(int)) * sizeof(int)) 9 10 #define va_start(AP, LASTARG) \ 11 (AP = ((char*)&(LASTARG) + __va_rounded_size(LASTARG))) 12 13 #define va_arg(AP, TYPE) \ 14 (AP += __va_rounded_size(TYPE), \ 15 *((TYPE*)(AP - __va_rounded_size(TYPE)))) 16 17 #define va_end(AP) \ 18 (AP = (va_list)0) 19 20 #define va_copy(DEST, SRC) \ 21 (DEST = SRC) 22 23 #endif // STDARG_H