va_list实际就是一个指向各个不定参数的指针,由于参数的类型是不确定的,所以可以定义va_list为void *或者char *类型,即 #defineva_list void * va_start就是将va_list指向函数最后一个具名参数lastarg后面的位置,这个位置就是第一个不定参数。 #defineva_start (ap, lastarg) \(ap = (va_list)&lastarg...