По умолчанию объявленные в функции переменные являются автоматическими. Тем не менее, это можно явно задать с помощью ключевого слова auto:
void main()
{
auto int Numb;
…
Это выполняется, например, в целях подчеркивания того факта, что описание внешней функции намеренно перекрывается, либо когда требуется не изменять класс памяти переменной.
Автоматическая переменная имеет
- область видимости в пределах блока. Другая функция может использовать переменную с тем же именем, но это будет независимая переменная, хранимая в другом месте памяти.
- не имеет связывания. Ее нельзя дважды объявлять в одном и том же блоке. Можно определять переменные, имеющие одинаковые имена, но существующие в различных блоках.
- автоматическую продолжительность хранения. Она начинает существовать при вызове функции, которая содержит переменную. Когда функция завершается, автоматическая переменная исчезает – область памяти, которую она занимала, может использоваться для других целей.