Salve, mi servirebbe creare una funzione in stile printf "int printf(char *format, arg list ...)"

ES)

int myfunction(char *string, ...){
...
}

se poi invoco nel main:

myfunction("questa è la prova numero %d", 100);

come mai nella mia funzione 'myfunction', la variabile string non assume "questa è la prova numero 100"?

So che potrei utilizzare sprintf e poi passare la sringa formattata al metodo ma ormai è diventata una sfida personale...

spero di essere stato chiaro, grazie mille