enum
- C kursu
- Orta seviye
- Ders 37/116
- 5 dk
enum ile adlandırılmış sabitler tanımlamayı öğrenirsin.
enum
Bir enum, adlandırılmış tamsayı sabitleri listeler. Sihirli sayıları (magic numbers) anlamlı isimlerle değiştirmenin temel yoludur; kod okunurluğunu artırır.
Örnek: enum Color { RED, GREEN, BLUE };. Burada RED = 0, GREEN = 1, BLUE = 2'dir. Varsayılan olarak ilk sabit 0'dır ve sonrakıler bir artar. Kullanım: enum Color c = GREEN; printf("%d\n", c); ekrana 1 yazar. enum sabitleri derleme anında yer değiştirilir; çalışma anında bellek kaplamaz. Bu yüzden verimli ve yaygındır.
Açık değer atama
enum sabitlerine varsayılan dışında açık değer verebilirsin. Bu, özel kod listeleri tanımlamak için yararlıdır.
Örnek: enum Level { LOW = 10, MEDIUM = 20, HIGH = 30 };. Artık LOW 10'dur. Veya kısmi açık değer: enum Code { A = 1, B, C = 10, D };. Burada B = 2 (A'dan bir artar), C = 10 (açık), D = 11 (C'den bir artar). Bu esneklik, protokol kodları ve hata numaraları tanımlarken kullanışlıdır. Yine de karmaşık değer düzenlerinden kaçınmak okunurluğu korur.
Uygulama enum ile renk seç ve yazdır
enum Color tanımla: RED, GREEN, BLUE. main içinde enum Color c = GREEN; yaz ve printf("%d\n", c); ile yazdır.
Başlangıç kodu
#include <stdio.h>
// enum Color tanımla (RED, GREEN, BLUE)
// main'de c'ye GREEN ata ve yazdır
int main(void) {
return 0;
}Örnek çözüm
#include <stdio.h>
enum Color { RED, GREEN, BLUE };
int main(void) {
enum Color c = GREEN;
printf("%d\n", c);
return 0;
}Beklenen çıktı
1
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 enum sabitlerini değerine eşle
| Kavram | Anlamı |
|---|---|
enum Color |
Enum türü |
RED |
0 (varsayılan) |
GREEN |
1 |
BLUE |
2 |
2 enum'un ilk değeri varsayılan olarak kaçtır?
- 1
- -1
- 0 Doğru cevap
- Sınırsız
Açıklama: enum'un ilk sabiti varsayılan olarak 0'dır.
3 enum sabitini tamamla
enum Color { RED, ____, BLUE };
enum Color { RED, GREEN, BLUE };
Açıklama: GREEN, RED'den sonra birer artar; değeri 1 olur.