yes, I agree with you. but the code in STDARG.H seems to be against what we think.
Code:
void minprintf(char *fmt, ...)
// Here we can see fmt is a pointer
Code:
va_start(ap, fmt);
// And the pointer being passed on to MACRO in STDARG.H
Code:
#define va_start(ap,v) ( ap = (va_list)&v + _INTSIZEOF(v) )
// fmt is a pointer, hence v is a pointer
Code:
#define _INTSIZEOF(n) ( (sizeof(n) + sizeof(int) - 1) & ~(sizeof(int) - 1) )
// v is a pointer, hence n is a pointer
WHY here it counts the size of a pointer???