Aracılığıyla paylaş


C Depolama Sınıfları

Bir değişkenin "depolama sınıfı", öğenin "genel" mi yoksa "yerel" bir ömrü mü olduğunu belirler. C bu iki ömrü "statik" ve "otomatik" olarak adlandırır. Genel yaşam süresine sahip bir öğe var ve programın yürütülmesi boyunca bir değere sahip. Tüm işlevlerin genel kullanım ömrü vardır.

Otomatik değişkenler veya yerel yaşam süresine sahip değişkenler, yürütme denetimi tanımlandığı bloğa her geçtiğinde yeni depolama alanı ayrılır. Yürütme döndürdüğünde, değişkenlerin artık anlamlı değerleri yoktur.

C aşağıdaki depolama sınıfı tanımlayıcılarını sağlar:

Sözdizimi

storage-class-specifier:
auto
register
static
extern
typedef
__declspec ( extended-decl-modifier-seq ) /* Microsoft'a özgü */

__declspecdışında, bildiriminde storage-class-specifier yalnızca bir tane declaration-specifier kullanabilirsiniz. Depolama sınıfı belirtimi yapılmazsa, blok içindeki bildirimler otomatik nesneler oluşturur.

veya auto tanımlayıcısıyla register bildirilen öğelerin yerel yaşam süreleri vardır. veya static tanımlayıcısıyla extern bildirilen öğelerin genel yaşam süreleri vardır.

ve typedef diğer dört __declspec terminalden farklı olduğundan storage-class-specifier ayrı olarak ele alınıyor. hakkında typedefbelirli bilgiler için bkz typedef . Bildirimler. hakkında __declspecbelirli bilgiler için bkz . Genişletilmiş Depolama Sınıfı Öznitelikleri.

Değişken ve işlev bildirimlerinin kaynak dosyalara yerleştirilmesi, depolama sınıfını ve görünürlüğü de etkiler. Tüm işlev tanımlarının dışındaki bildirimlerin "dış düzeyde" göründüğü söylenir. İşlev tanımları içindeki bildirimler "iç düzeyde" görünür.

Her depolama sınıfı tanımlayıcısının tam anlamı iki faktöre bağlıdır:

  • Bildirimin dış veya iç düzeyde görünüp görünmediği

  • Bildirilmekte olan öğenin değişken mi yoksa işlev mi olduğu

Dış Düzey Bildirimleri için Depolama Sınıfı Tanımlayıcıları ve İç Düzey Bildirimler için Depolama Sınıfı Tanımlayıcıları , her tür bildirimdeki terminalleri açıklar storage-class-specifier ve bir değişkenden atlandığında storage-class-specifier varsayılan davranışı açıklar. İşlev Bildirimlerine sahip Depolama Sınıfı Tanımlayıcıları , işlevlerle kullanılan depolama sınıfı tanımlayıcılarını açıklar.

Ayrıca bkz.

Bildirimler ve Türler