Аўтаматычны клас захоўвання ў праграмаванні на C


Гэта клас захоўвання лакальных зменных. Гэта азначае, што гэтыя тыпы зменных вызначаны ў блоку альбо функцыі, і іх вобласць існуе ў блоку альбо функцыі, у якіх яны вызначаны. Гэта азначае, што любыя аўтаматычныя зменныя паводзяць сябе як любыя іншыя звычайныя лакальныя зменныя. Ключавое слова "auto" дадаецца перад аб'явай зменнай лакальнай зменнай, каб паказаць, што яны з'яўляюцца лакальнымі зменнымі. Калі зменная аб'яўляецца як лакальная, яна захоўваецца ў памяці - аператыўнай памяці. Гэта значыць, адрас памяці прызначаецца зменнай і з гэтага часу называецца імем зменнай. Гэты тып зменных будзе мець значэнні смецця, калі і пакуль яны не будуць ініцыялізаваны. Такім чынам, яны не адрозніваюцца ад любых іншых лакальных зменных.

#include 

void main(){
	auto int intNum;

	printf("\nValue at intNum before initializing is %d ", intNum);// shows compilation error that intNum is not initialized

	intNum = 100;
	printf("\nValue at intNum after initializing is %d ", intNum);
}

Калі мы ініцыялізуем значэнне і паспрабуем выканаць праграму, яна будзе працаваць без памылак. Гэта азначае, што auto стварае прастору памяці для зменнай intNum, але не дазваляе выкарыстоўваць зменную, пакуль яна не будзе ініцыялізавана.