Ö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
#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
#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 |