Я написал намеренно неправильный код
printf("%d %d", 1);
компиляция с g++
и -Werror=format
.
Компилятор выдает очень впечатляющее предупреждение:
error: format '%d' expects a matching 'int' argument [-Werror=format]
Насколько я понимаю, компилятор не может определить, что код неправильный, потому что строка формата не анализируется до времени выполнения.
Мой вопрос: есть ли у компилятора специальная функция, которая срабатывает для printf и аналогичных функций libc, или это функция, которую я мог бы использовать для своих собственных функций? Строковые литералы?
printf
и аналогичныхlibc
функций. Он не будет автоматически работать с вашими собственными функциями. - person Jesper   schedule 06.12.2013