Sobes.tech
Junior — Middle

A program melyik részén tárolódnak általában a statikus változók?

sobes.tech MI

Válasz az MI-től

Egy programban a statikus változók általában a memória adat szegmensében (data segment) vagy az inicializált adatok szegmensében (initialized data segment) tárolódnak. Ez egy memória terület, amelyet globális és statikus változók tárolására foglaltak le, amelyek a program futása során léteznek.

Az iOS-ben (és általában C/C++/Objective-C-ben) a függvényeken vagy osztályokon belüli statikus változók ebben a területen tárolódnak, nem a veremben vagy a heapen. Ez lehetővé teszi számukra, hogy megőrizzék értéküket a függvényhívások között.

Példa:

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

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

Itt a count egy statikus változó, amely a data szegmensben van tárolva, és megőrzi értékét a függvényhívások között.