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