Я (быстро) написал код и случайно перевернул аргументы в scanf()
:
char i[] = "ABC1\t";
scanf(i, "%s");
Компиляция с помощью gcc -Werror -Wall -Wextra
не жалуется на этот бит. Очевидно, что этот код не работает, но почему gcc не сообщил мне, что я перевернул аргументы? Не может ли он обнаружить, что i
не является строкой формата или что второй аргумент не является типом хранилища?
ИЗМЕНИТЬ
Спасибо, что поняли все. Похоже, я нашел ответ, был фальсифицирован флаг -Wformat
, который делает это "захватывающим" (размещенное ниже для справки)