-Ferror = formato: ¿cómo puede saber el compilador?

Escribí este código intencionalmente incorrecto

printf("%d %d", 1);

compilando cong++ y-Werror=format.

El compilador da esta advertencia muy impresionante:

error: format '%d' expects a matching 'int' argument [-Werror=format]

Por lo que puedo ver, no hay forma de que el compilador pueda decir que el código es incorrecto, porque la cadena de formato no se analiza hasta el tiempo de ejecución.

Mi pregunta: ¿el compilador tiene una característica especial que activa las funciones de printf y libc similares, o es esta una característica que podría usar para mis propias funciones? ¿Literales de cuerdas?

Respuestas a la pregunta(2)

Su respuesta a la pregunta