The macro va_start is then called with two arguments: the first is the variable declared of the type va_list, the second is the name of the last named parameter of the function. In C23 the second argument will be optional and will not be evaluated.
The macro va_start is called next with two parameters: the initial one is a variable of type va_list, and the subsequent one is the name of the last parameter declared within the function. In C23, this second parameter can be omitted and need not be evaluated.