Aracılığıyla paylaş


Depolama Sınıfı

bir işlev tanımındaki depolama sınıfı tanımlayıcısı işleve extern veya static depolama sınıfına verir.

Sözdizimi

function-definition:
declaration-specifiers optattribute-seqopt optdeclaratordeclaration-listcompound-statement

/* attribute-seq Microsoft'a özgü */

declaration-specifiers:
storage-class-specifier declaration-specifiers Tercih
type-specifier declaration-specifiers Tercih
type-qualifier declaration-specifiers Tercih

storage-class-specifier: /* İşlev tanımları için */
extern
static

İşlev tanımı bir storage-class-specifieriçermiyorsa, depolama sınıfı varsayılan olarak olur extern. Bir işlevi açıkça olarak externbildirebilirsiniz, ancak gerekli değildir.

bir işlevin bildirimi öğesini storage-class-specifierexterniçeriyorsa, tanımlayıcı, dosya kapsamına sahip tanımlayıcının görünür herhangi bir bildirimiyle aynı bağlantıya sahiptir. Dosya kapsamına sahip görünür bir bildirim yoksa, tanımlayıcının dış bağlantısı vardır. Bir tanımlayıcının dosya kapsamı varsa ve yoksa storage-class-specifier, tanımlayıcının dış bağlantısı vardır. Dış bağlantı, tanımlayıcının her örneğinin aynı nesneyi veya işlevi gösterdiği anlamına gelir. Bağlantı ve dosya kapsamı hakkında daha fazla bilgi için bkz . Yaşam Süresi, Kapsam, Görünürlük ve Bağlantı.

extern dışında depolama sınıfı tanımlayıcısına sahip blok kapsamı işlev bildirimleri hata oluşturur.

Depolama sınıfına sahip static bir işlev yalnızca içinde tanımlandığı kaynak dosyada görünür. İster açık ister örtük olarak depolama sınıfına sahip extern olsunlar, diğer tüm işlevler programdaki tüm kaynak dosyalarında görünür. static Depolama sınıfı isteniyorsa, işlevin bildiriminin ilk oluşumunda (varsa) ve işlevin tanımında bildirilmelidir.

Microsoft'a Özgü

Microsoft uzantıları etkinleştirildiğinde, işlev tanımı aynı kaynak dosyadaysa ve tanım açıkça depolama sınıfını belirtiyorsaextern, başlangıçta depolama sınıfı olmadan (veya depolama sınıfıylastatic) bildirilen bir işleve depolama sınıfı verilirstatic.

/Ze derleyici seçeneğiyle derlendiğinde, anahtar sözcüğü kullanılarak extern bir blok içinde bildirilen işlevler genel görünürlüğe sahiptir; bu, /Za ile derlenirken doğru değildir. Kaynak kodun taşınabilirliği göz önünde bulundurulacaksa bu özelliğe bağlı kalmamalıdır.

END Microsoft'a Özgü

Ayrıca bkz.

C İşlev Tanımları