#ifndef VARARGS2_H #define VARARGS2_H #define va_stack(name, max) int name[max+1] #define va_stack_init(stack) stack[0] = 0 #define va_push(stack, arg, type) *(type *)(&stack[stack[0]+1]) = (arg), \ stack[0] += (sizeof(type) + sizeof(int) - 1) / sizeof(int) #ifdef __STDC__ extern int va_call(int (*)(), int *); #endif #endif