Prisjetimo se vježbe "
Istovremenost i varijable". Sličan kod je lijevo.
Ako se ne sjećate, pogledajte opet vježbu i podsjetite čemu služi
static.
Ograničenje statičke varijable je da se njena vrijednost postavi samo kad
prvi put program prođe kroz funkciju u kojoj se nalazi naredba.
Pogledajmo ograničenje u primjeru. Kod je jednostavan: počne ispisivati "10 sec." 10 sekundi nakon što smo pokrenuli funkciju "loop()". To je očekivano.
Recimo da zaustavimo "loop()" s "x" pa opet pokrenemo pomoću "loo".
Hoće li ispis krenuti nakon 10 sekundi. Neće! Zašto? Probajte sami shvatiti. Ako ne ide, čitajte dalje.
Ispis će krenuti odmah. Stvar je u tome da je varijabla "ms" poprimila neku vrijednost kad smo prvi put utipkali "loo". Nakon toga smo zaustavili program i pokrenuli opet "loo" - ali ovaj put ms više neće poprimiti vrijednost "millis()"! Zapamtite, "static" djeluje samo prvi put.
Uočite da je "setup()" moćniji od "static" jer nam omogućava da prvi put pokrenemo proizvoljne naredbe, ne samo pridruživanje vrijednosti varijabli.