1 #ifndef __STDARG 2 #define __STDARG 3 4 typedef char *va_list; 5 6 #define va_start(list, start) list = (sizeof(start)<4 ? (char *)((int *)&(start)+1) : \ 7 (char *)(&(start)+1)) 8 #define va_end(list) 9 #define va_arg(list, mode)\ 10 ((sizeof(mode) == 1)?\ 11 ((list += 4), (mode*)list)[-4]:\ 12 (sizeof(mode) == 2)?\ 13 ((list += 4), (mode*)list)[-2]:\ 14 ((list += sizeof(mode)), (mode*)list)[-1]) 15 16 #endif /* __STDARG */ 17