关于va_arg(ap,t)的疑问
#define _INTSIZEOF(n) ((sizeof(n)+sizeof(int)-1)&~(sizeof(int) - 1) )
#define va_start(ap,v) ( ap = (va_list)&v + _INTSIZEOF(v) ) //第一个可选参数地址
#define va_arg(ap,t) ( *(t *)((ap += _INTSIZEOF(t)) - _INTSIZEOF(t)) ) //下一个参数地址
#define va_end(ap) ( ap = (va_list)0 ) // 将指针置为无效
以上是这几个函数的定义,可是关于va_arg(ap,t)这个函数加了一个数,然后减了相同的数,怎么就向后移了一个位置呢?(我认为位置没变)
求解答,不剩感激!!!