extern ve Genel Kapsam
Dosyalar arasında paylaşım
extern ve Genel Kapsam, CoddyKit'te ücretsiz bir C Academy dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, C Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. C Academy kursu toplamda 4 dersten oluşur.
Global Değişkenler
Herhangi bir işlevin dışında bildirilen değişken, dosya kapsamına sahiptir ve programın tamamı boyunca var olur. Bu değişkene global denir.
#include <stdio.h>
int counter = 0;
void bump(void) {
counter++;
}
int main(void) {
bump();
bump();
printf("counter = %d\n", counter);
return 0;
}Global Değişkenler Paylaşımlıdır
Dosyadaki her işlev bir global değişkeni okuyabilir ve yazabilir. Bu durum onları kullanışlı, ancak yanlış kullanıma açık hâle getirir.
#include <stdio.h>
int score = 100;
void penalty(void) { score -= 25; }
void bonus(void) { score += 10; }
int main(void) {
penalty();
bonus();
printf("score = %d\n", score);
return 0;
}Varsayılan Sıfırla Başlatma
Başlangıç ifadesi olmayan global değişkenler otomatik olarak 0 değeriyle başlar.
#include <stdio.h>
int total;
int main(void) {
printf("total = %d\n", total);
return 0;
}extern Anahtar Sözcüğü
extern, başka bir yerde tanımlanan bir global değişkeni bildirir. Derleyiciye, değişken için bellek ayırmadan değişkenin var olduğunu bildirir.
#include <stdio.h>
int shared = 5;
extern int shared;
int main(void) {
printf("shared = %d\n", shared);
return 0;
}Bildirim ve Tanım Arasındaki Fark
Bir tanım saklama alanı ayırır. Bir bildirim ise yalnızca bir şeyin adını belirtir. extern bildirimleri saklama alanı ayırmaz.
#include <stdio.h>
int value = 42;
int main(void) {
extern int value;
printf("value = %d\n", value);
return 0;
}Dosyalar Arasında Paylaşma
Birden çok dosyalı projelerde, bir .c dosyası global değişkeni tanımlar; diğer dosyalar ise onu görebilmek için bir başlık dosyasında extern kullanır.
#include <stdio.h>
extern int globalCount;
int globalCount = 3;
int main(void) {
printf("globalCount = %d\n", globalCount);
return 0;
}İşlevler de extern Olabilir
İşlevler varsayılan olarak dış bağlamaya sahiptir; bu nedenle bir prototip, işlevin fiilen bir extern bildirimi sayılır.
#include <stdio.h>
extern void hello(void);
void hello(void) {
printf("Hello from extern\n");
}
int main(void) {
hello();
return 0;
}Global Değişkenlerin Ömrü
Global değişkenler programın başlangıcından sonuna kadar var olur; bu nedenle değerleri tüm işlev çağrıları boyunca korunur.
#include <stdio.h>
int visits = 0;
void page(void) { visits++; }
int main(void) {
page();
page();
page();
printf("visits = %d\n", visits);
return 0;
}Global Değişkenlerin Riskleri
Herhangi bir kod global değişkeni değiştirebildiğinden, hataların izini sürmek zorlaşır. Mümkün olduğunda değerleri parametre olarak geçirmeyi tercih edin.
#include <stdio.h>
int config = 1;
int compute(int input) {
return input * config;
}
int main(void) {
printf("%d\n", compute(8));
return 0;
}Salt Okunur Global Değişkenler
const ile bir global değişkeni birleştirerek kimsenin değiştiremeyeceği paylaşılan bir sabit oluşturabilirsiniz.
#include <stdio.h>
const int MAX_USERS = 50;
int main(void) {
printf("MAX_USERS = %d\n", MAX_USERS);
return 0;
}Uygulamalı Bir Örüntü
Birden çok işlev tarafından okunan global yapılandırma değeri, yaygın ve kabul edilebilir bir kullanımdır.
#include <stdio.h>
int multiplier = 3;
int scale(int x) { return x * multiplier; }
int main(void) {
printf("%d\n", scale(4));
printf("%d\n", scale(7));
return 0;
}Hızlı Kontrol
extern ve global değişkenler konusundaki anlayışınızı sınayın.
Özet: extern ve Global Değişkenler
Global değişkenleri ve dış bağlamayı öğrendiniz.
- Global değişkenler, program ömrüne sahip dosya kapsamlı değişkenlerdir
- Varsayılan olarak 0 değerini alır ve tüm işlevler tarafından paylaşılırlar
extern, başka yerde tanımlanan bir global değişkeni bildirir- Tanım saklama alanı ayırır, bildirim ise yalnızca adı belirtir
- Gizli bağımlılıkları önlemek için global değişkenleri ölçülü kullanın
Sıkça Sorulan Sorular
“extern ve Genel Kapsam” dersi ücretsiz mi?
Evet — “extern ve Genel Kapsam” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve C Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. C Academy kursu toplamda 4 dersten oluşur.
“extern ve Genel Kapsam” dersinde ne öğreneceğim?
Dosyalar arasında paylaşım C Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
C Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te C Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.
“extern ve Genel Kapsam” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu C Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her C Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- auto ve Yerel Kapsam
- static Değişkenler
- extern ve Genel Kapsam
- register ve const