What type is of v? Not a pointer, I think, otherwise, there is no need to get the address using &v, v itself will suffice.Code:#define _INTSIZEOF(n) ( (sizeof(n) + sizeof(int) - 1) & ~(sizeof(int) - 1) ) #define va_start(ap,v) ( ap = (va_list)&v + _INTSIZEOF(v) )