Mi chiedo se questo produce in un comportamento indefinito:sta chiamando printf con argomenti in eccesso un comportamento indefinito?
printf("Test %d %s", 123, "abc", "def", "ghi");
I primi due argomenti che seguono la stringa di formato corrispondono alla stringa di formato, quindi queste sono OK; ma il 3 ° e il 4 ° argomento sono in eccesso perché non ci sono più specificatori di formato corrispondenti.
IMHO printf()
deve semplicemente ignorare questi argomenti in eccesso e non dovrebbe esserci UB. È corretto?
Penso che questa domanda sia come chiedere "Una funzione che accetta varargs può richiedere un numero qualsiasi di argomenti?". Il meccanismo che consente la gestione di un numero variabile di argomenti funziona indipendentemente dai particolari di come la funzione utilizza tali argomenti ... – SJuan76