Ծրագրի կառուցվածք

Սեկցիաներ, սեգմենտներ։ Scope, linkage, static և գլոբալ փոփոխականներ

Scope սահմանում է, թե որտեղ է փոփոխականը հասանելի ծրագրի շրջանակներում: C-ում գոյություն ունեն scope-ի երեք հիմնական տեսակ՝ local, global և block scope: Local փոփոխականները հասանելի են միայն այն ֆունկցիայի կամ բլոկի ներսում, որտեղ դրանք հայտարարված են: Global փոփոխականները հասանելի են ողջ ծրագրի ընթացքում: Block շրջանակի փոփոխականները սահմանվում են կոդի բլոկի ներսում և հասանելի են միայն այդ բլոկի ներսում: Linkage-ը որոշում է, թե արդյոք փոփոխականը հասանելի է տարբեր translation units (source files) համար: C-ի փոփոխականները կարող են ունենալ internal linkage (հասանելի է միայն նույն ֆայլում), external linkage (հասանելի է տարբեր ֆայլերում) կամ no linkage(local այն scope-ում, որտեղ նրանք հայտարարված են): static փոփոխականներն ունեն երկար կյանք և պահպանում են իրենց արժեքները մինչև ֆունկցիայի կանչ: Global փոփոխականներն ունեն external linkage, ինչը նրանց հասանելի է դարձնում բազմաթիվ ֆայլերում: