[so] [Tech Q] scope & linkage
Razvan Deaconescu
razvan.deaconescu at cs.pub.ro
Tue Feb 22 01:14:06 EET 2011
On 02/22/2011 12:56 AM, Catalin Nicutar wrote:
> 2011/2/22 Razvan Deaconescu <razvan.deaconescu at cs.pub.ro>:
>> Deci, care este criteriul de clasificare conform căruia cei doi
>> identificatori sunt diferiți? Think static & auto. (este destul de
>> punctuală întrebarea, dar nu pot da înapoi acum :-P)
>
> Sper sa nu gresesc.
>
> O variabila statica ramane prezenta undeva in memorie si dupa
> ce s-a incheiat apelul functiei si nu isi pierde valoarea.
> Cealalta variabila e numita "automatic variable" pentru ca i se
> va aloca storage in mod automat (pe stiva in mod uzual dar nu
> cred ca spune standardul ceva).
>
> "This means that internal static variables provide private,
> permanent storage within a single function".
Cam da. Criterul se cheamă "storage duration"/"storage class", iar
auto/register/static/extern sunt numiți "storage duration specifiers"[1].
Detalii bine explicate (consider eu) despre aceste aspecte găsiți în
cartea "C in a Nutshell"[2] (secțiunea 1.6.2 și întreg capitolul 11). O
găsiți în documentație[3] (c-selection). Recomand în mod deosebit
parcurgerea secțiunii 11.1.2 în care se specifică faptul că linkage se
referă la identificatori iar storage class la obiecte.
Răzvan
[1] http://en.wikipedia.org/wiki/C_syntax#Storage_duration_specifiers
[2] http://oreilly.com/catalog/9780596006976
[3] http://elf.cs.pub.ro/so/res/doc/
More information about the so
mailing list