C'de extern anahtar sözcüğü

11:21

Bir kaynak dosya içinde tanımlanan bir değişkene ya da işleve, yalnızca tanımlandığı kaynak dosya içinde değil, projeyi oluşturan diğer kaynak dosyalarda da erişilebiliyorsa, nesne ya da işlevin dış bağlantısı “external linkage” vardır denir.

Bir kaynak dosya içinde tanımlanan bir değişkene ya da işleve, yalnızca tanımlandığı kaynak dosya içinde erişilebiliyorsa, projeyi oluşturan diğer kaynak dosyalarda erişilemiyorsa, nesne ya da işlevin iç bağlantısı “internal linkage” vardır denir.

extern anahtar kelimesi derleyiciye değişkenin dışarıda tanımlandığını bildirmek için kullanılan bir keyword'tür. Compiler extern keyword'unu gördüğünde değişken için alan tahsisinde bulunmaz. 





Yukarıdaki a.c | b.c | c.c şeklinde üç c dosyası bulunmaktadır. b.c dosyası içinde g_x değişkeni bildirilmiş a.c ile c.c dosyalarında extern keyword'u ile dış bağlantıya ait g_x değişkeni kullanılmıştır.



eğer b.c dosyasında da int g_x bildirimi olmasaydı veya orada da extern g_x bildirilimi yapılsaydı compile aşamasında olmasada link aşamasında hata verecekti.