typedef enum
- C kursu
- Orta seviye
- Ders 39/116
- 5 dk
typedef ile enum'a yeni isim vermeyi öğrenirsin.
typedef enum
typedef, bir türe yeni bir takma ad (alias) verir. typedef enum ile enum'a kısa bir isim verirsin; böylece her seferinde enum anahtar kelimesini yazmazsın.
Örnek: typedef enum { RED, GREEN, BLUE } Color;. Bundan sonra Color c = GREEN; yazabilirsin; enum Color c = GREEN; yazmaya gerek yok. Bu, kodu kısaltır ve temizler. Başlık dosyalarında yaygındır; çünkü API türlerini sade gösterir. typedef yeni bir tür yaratmaz; yalnızca mevcut türe ikinci bir isim ekler.
typedef kullanımı
typedef enum kullandıktan sonra değişken tanımı enum anahtar kelimesi olmadan yapılır. Bu, özellikle uzun enum isimlerinde okunurluğu artırır.
Örnek: typedef enum { LOW, MEDIUM, HIGH } Priority;. Sonra Priority p = HIGH; yazabilirsin. enum Priority p = HIGH; da hala geçerlidir; ama gerekmez. API tasarımında typedef kullanımı yaygın bir_standarttır; çünkü kullanıcının türün enum olduğunu bilmesi şart değildir. Bu, uygulama detayını gizler ve gelecekte değişiklik yapmayı kolaylaştırır.
Uygulama typedef enum ile iki renk yazdır
typedef enum { RED, GREEN, BLUE } Color; tanımla. main içinde Color c = RED; ve Color g = GREEN; yaz. printf("%d %d\n", c, g); ile yazdır.
Başlangıç kodu
#include <stdio.h>
// typedef enum ile Color türünü tanımla (RED, GREEN, BLUE)
// main'de c'ye RED, g'ye GREEN ata ve yazdır
int main(void) {
return 0;
}Örnek çözüm
#include <stdio.h>
typedef enum { RED, GREEN, BLUE } Color;
int main(void) {
Color c = RED;
Color g = GREEN;
printf("%d %d\n", c, g);
return 0;
}Beklenen çıktı
0 1
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 typedef enum {RED, GREEN, BLUE} Color; bildiriminde tür adı?
- Color Doğru cevap
- RED
- enum Color
- typedef
Açıklama: typedef, Color ismini enum türüne takma ad yapar.
2 typedef biçimlerini eşle
| Kavram | Anlamı |
|---|---|
typedef enum {...} Color |
Tür takma adı |
Color c |
Değişken tanımı |
enum Color c |
Uzun yazım |
RED, GREEN, BLUE |
Sabit listesi |
3 typedef enum takma adını tamamla
typedef enum { RED, GREEN, BLUE } ____;
Color c = GREEN;
typedef enum { RED, GREEN, BLUE } Color;
Color c = GREEN;
Açıklama: Color, enum'a verilen takma addır.