Прежде всего, auto
(ключевое слово) является не спецификатором типа, это спецификатор класса хранения. Цитата из стандарта,
Объект имеет продолжительность хранения, определяющую его время жизни. Существует четыре хранилища: длительности: статические, потоковые, автоматические и выделенные.
Процитируем C11
, глава §6.2.4, хранение длительности объектов
Объект, идентификатор объявляются без какой-либо связи и без хранения класса спецификатора static
имеют автоматический срок хранения , [..]
и относительно связи, (внимания шахта)
Следующие идентификаторы не имеют нет связи: идентификатор объявляется быть ничем иным, чем объекта или функции; идентификатор, объявленный как параметр функции; идентификатор блока для объекта, объявленного без спецификатора класса хранения extern
.
Таким образом, локальные переменные, удовлетворяющие вышеуказанным условиям, по умолчанию имеют автоматическую продолжительность хранения. Вам не обязательно явно указать ключевое слово auto
.
OTOH, спецификаторы типов определяют тип (данных или переменных). Судя по стандартному определению типа
Смысл значения, сохраненного в объекте или возвращаемого функцией определяется типа выражения, используемого для доступа к нему.
'auto type вместо локальных переменных'..пожалуйста, сначала прочитайте C-книгу. –
'auto' не является типом. –
Тип авто является одним из типов класса хранения. Поэтому я упомянул спецификатор auto-type – Arul