CodeBlanks Logo Icon CodeBlanks

typedef ve enum

  • C kursu
  • Orta seviye
  • Ders 110/116
  • 5 dk

typedef ile enum türü öğrenirsin.

typedef ve enum

enum, adlandırılmış tamsayı sabitleri tanımlar. typedef ile birlikte kullanıldığında, enum anahtar sözcüğünü tekrarlamadan kısa adla kullanılır.

Örnek: typedef enum { RED, GREEN, BLUE } Color;. Bu, üç renk sabitini (RED=0, GREEN=1, BLUE=2) ve Color tür adını tanımlar. Bundan sonra Color c = GREEN; yazabilirsin; enum Color c = GREEN; yazmak zorunda değilsin. Bu, kodu hem kısaltır hem de tür güvenliğini artırır. switch içinde her sabiti bir case ile eşleştirirsin; böylece renk adları okunabilir olur.

Renk adı fonksiyonu

Bir Color değerini insan-okur dizeye çevirmek için switch kullanan bir fonksiyon yazarsın. Her case, bir sabite karşılık gelir ve Türkçe adı döndürür.

Örnek: const char *color_name(Color c) { switch (c) { case RED: return "kırmızı"; case GREEN: return "yeşil"; case BLUE: return "mavi"; default: return "bilinmeyen"; } }. Bu fonksiyon, sayısal değeri anlamlı bir dizeye çevirir. printf("%s\n", color_name(GREEN)); çağrısı "yeşil" yazdırır. switch yapısı, yeni renk eklendiğinde kolayca genişletilebilir; yalnızca yeni bir case eklersin. Bu, enum'ları dizeyle eşlemenin standart desenidir.

Uygulama typedef enum programı yaz

typedef enum { RED, GREEN, BLUE } Color; tanımla. const char *color_name(Color c) fonksiyonunu yaz; switch ile RED→"kırmızı", GREEN→"yeşil", BLUE→"mavi", default→"bilinmeyen". main içinde printf("%s\n", color_name(GREEN)); yazdır.

Başlangıç kodu

main.c
#include <stdio.h>

// Color enum'ını typedef ile tanımla
// color_name fonksiyonunu switch ile yaz
// main'de color_name(GREEN) çağır ve yazdır

int main(void) {
    return 0;
}

Örnek çözüm

main.c
#include <stdio.h>

typedef enum { RED, GREEN, BLUE } Color;

const char *color_name(Color c) {
    switch (c) {
        case RED: return "kırmızı";
        case GREEN: return "yeşil";
        case BLUE: return "mavi";
        default: return "bilinmeyen";
    }
}

int main(void) {
    printf("%s\n", color_name(GREEN));
    return 0;
}

Beklenen çıktı

yeşil

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Renk sabitlerini eşle

Kavram Anlamı
RED Sıfır
GREEN Bir
BLUE İki
Color Tür adı

2 color_name çağrısını tamamla

Soru
printf("%s
", color_name(____));
Cevap
printf("%s
", color_name(GREEN));

Açıklama: color_name(GREEN) "yeşil" döndürür.

3 color_name fonksiyonu ne döndürür?

  • Renk bileşenlerini
  • Renk kodunu (tamsayı)
  • Renk adını (dize) Doğru cevap
  • Bellek adresini

Açıklama: color_name bir Color değerini dizeye çevirir.

Orta seviye bölümündeki tüm dersler