¿Hay alguna limitación en la longitud de la cadena definida en la lista de argumentos variables?

Tengo dudas con respecto a la lista de argumentos variables, ¿existe alguna limitación en la longitud de la cadena de caracteres definida como una de los argumentos a la lista de variables? Por ejemplo

void ShowVar( int a,char *szTypes, ... ); int main() { ShowVar( 4, "Test","string-size"); } 

Ahora mi pregunta, ¿hay alguna limitación en el tamaño de la cadena aquí?

No hay un límite impuesto por el lenguaje C sobre la duración de una cadena C (ya que las cadenas C son básicamente matrices de caracteres con un carácter NUL al final). Como puede ver, el tipo de argumento es char * , es decir, puntero a char . Esto significa que la cadena en sí no se pasa como un argumento, sino más bien como un puntero a su primer carácter, por lo tanto, la longitud de la cadena es irrelevante para la llamada a la función.

(En la práctica, por supuesto, habrá un límite desde la architecture de la computadora y la plataforma, pero estos límites son muy altos en comparación con los típicos argumentos de cadena).

No.

Todo lo que se pasa en la llamada es punteros de caracteres después de todo.

El tamaño de cada puntero es constante, independientemente de cuántos caracteres haya en la cadena a la que apunta.

Teóricamente No. El argumento char * es solo un puntero a la matriz de caracteres.