CodeBlanks Logo Icon CodeBlanks

Özet - Birleşimler ve enum'lar

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

union, enum ve bit alanlarını birleştirerek bir durum makinesi yazarsın.

Özet - Birleşimler ve enum'lar

Bu özette union, enum ve bit alanı kavramlarını birleştirerek bir durum makinesi (state machine) yazacaksın. Grup boyunca union paylaşımını, enum sabitlerini, tagged union desenini, typedef enum kısaltmasını ve bit alanı sıkıştırmasını öğrendin.

Durum makinesi şu parçaları kullanır: typedef enum ile State türü, struct Machine içine State state ve unsigned running : 1 bit alanı. Bu parçalar gerçek bir uygulamada durum geçişleri, olay işleme ve bayrak yönetimine temel oluşturur. C'de yorumlayıcılar, derleyiciler ve donanım sürücüleri bu desenle başlar.

Uygulama Durum makinesi yaz

typedef enum { IDLE, ACTIVE, STOPPED } State; tanımla. struct Machine tanımla: State state; ve unsigned running : 1;. main içinde struct Machine m; yaz; m.state = ACTIVE; ve m.running = 1; ata. printf("%d %d\n", m.state, m.running); ile yazdır.

Başlangıç kodu

main.c
#include <stdio.h>

// typedef enum ile State türünü tanımla (IDLE, ACTIVE, STOPPED)
// struct Machine tanımla (State state ve running 1 bit)
// main'de m tanımla, state'i ACTIVE, running'i 1 yap ve yazdır

int main(void) {
    return 0;
}

Örnek çözüm

main.c
#include <stdio.h>

typedef enum { IDLE, ACTIVE, STOPPED } State;

struct Machine {
    State state;
    unsigned running : 1;
};

int main(void) {
    struct Machine m;
    m.state = ACTIVE;
    m.running = 1;
    printf("%d %d\n", m.state, m.running);
    return 0;
}

Beklenen çıktı

1 1

Özet

Bu grupta union, enum, typedef enum ve bit alanları kavramlarını öğrendin. Bunları birleştirerek bir durum makinesi yazdın.

union bellek paylaşır, enum adlandırılmış sabitler verir, typedef kısa tür adları sağlar ve bit alanları veriyi sıkıştırır. Bu dört araç, C'de veri modellemenin temelidir: protokoller, donanım kayıtları ve durum makineleri bunlara dayanır. Sonraki gruplarda dosya I/O ile veriyi diske yazıp okuyacak; hata yönetimi ile güvenliği artıracaksın. Bu temeller, gerçek dünya C projelerinin yapı taşlarıdır.

Soru ve cevaplar

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

1 Hangisi üyeler arasında belleği paylaşır?

  • struct
  • enum
  • union Doğru cevap
  • typedef

Açıklama: union üyeleri aynı belleği paylaşır.

2 Kavramları amacına eşle

Kavram Anlamı
union Paylaşılan bellek
enum Adlandırılmış sabitler
typedef Tür takma adı
bit field Bit sıkıştırma

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