Sobes.tech
Junior — Middle

U kom delu programa se obično čuvaju statičke promenljive?

sobes.tech АИ

Одговор од АИ

Statističke promenljive u programu obično se čuvaju u segmentu podataka (data segment) ili u segmentu inicijalizovanih podataka (initialized data segment) u memoriji procesa. To je oblast memorije rezervisana za skladištenje globalnih i statičkih promenljivih koje postoje tokom celog trajanja programa.

U iOS-u (i uopšteno u C/C++/Objective-C) statičke promenljive unutar funkcija ili klasa se čuvaju u ovom segmentu, a ne na steku ili hrpi. To im omogućava da zadrže svoju vrednost između poziva funkcija.

Primer:

func counter() -> Int {
    static var count = 0
    count += 1
    return count
}

print(counter()) // 1
print(counter()) // 2

Ovde je count statička promenljiva koja se čuva u segmentu podataka i zadržava svoju vrednost između poziva funkcije.