Özet - İleri typedef
- C kursu
- Orta seviye
- Ders 111/116
- 5 dk
struct, fp ve opaq türlerini birleştirerek bir modül arayüzü yazarsın.
typedef özeti
Bu özette typedef enum, typedef struct ve typedef fonksiyon işaretçisi kavramlarını birleştiren bir program yazacaksın. Program, bir görev yapısı ve onu yazdıran fonksiyon işaretçisi içerir.
Yapı şu şekilde: Priority enum'ı ile öncelik seviyeleri tanımlarsın. Task yapısı ad ve öncelik taşır. TaskPrinter fonksiyon işaretçisi, görevi yazdıran fonksiyona atanır. main bir görev oluşturur ve işaretçi ile yazdırır. Bu, typedef'in üç temel kullanımını tek programda birleştirir: enum ile sabitler, struct ile veri, fonksiyon işaretçisi ile davranış soyutlama.
Uygulama typedef özet programı yaz
typedef enum { LOW, MEDIUM, HIGH } Priority; tanımla. typedef struct { char name[32]; Priority priority; } Task; tanımla. typedef void (*TaskPrinter)(const Task *); tanımla. void print_task(const Task *t) fonksiyonu yaz; const char *prio[] = {"düşük", "orta", "yüksek"}; ile printf("%s [%s]\n", t->name, prio[t->priority]);. main içinde Task t = {"Yedekle", HIGH}; TaskPrinter printer = print_task; printer(&t); yaz.
Başlangıç kodu
#include <stdio.h>
// Priority enum'ını typedef ile tanımla
// Task yapısını typedef ile tanımla
// TaskPrinter fonksiyon işaretçisini typedef ile tanımla
// print_task fonksiyonunu yaz
// main'de Task oluştur ve printer ile çağır
int main(void) {
return 0;
}Örnek çözüm
#include <stdio.h>
typedef enum { LOW, MEDIUM, HIGH } Priority;
typedef struct {
char name[32];
Priority priority;
} Task;
typedef void (*TaskPrinter)(const Task *);
void print_task(const Task *t) {
const char *prio[] = {"düşük", "orta", "yüksek"};
printf("%s [%s]\n", t->name, prio[t->priority]);
}
int main(void) {
Task t = {"Yedekle", HIGH};
TaskPrinter printer = print_task;
printer(&t);
return 0;
}Beklenen çıktı
Yedekle [yüksek]
Özet
Bu grupta ileri typedef kullanımlarını öğrendin. typedef struct, typedef fonksiyon işaretçisi, typedef dizi, opak türler ve typedef enum kavramlarını gördün. Bunları birleştirerek enum, struct ve fonksiyon işaretçisini tek programda kullandın.
typedef, C'de soyutlamanın temel aracıdır. Kısa tür adları kodu okunabilir kılar; opak türler iç yapıyı gizler. Sonraki grupta orta seviye final projesi seni bekliyor; orada struct, bağlı liste, fonksiyon işaretçisi ve dosya I/O'yu birleştireceksin. Sağlam typedef becerisi, temiz C kodunun ayrılmaz parçasıdır.
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 typedef ne işe yarar?
- Türe kısa ad verir Doğru cevap
- Bellek ayırır
- Döngü kurar
- Dosya açar
Açıklama: typedef bir türe yeni ve kısa bir ad verir.
2 typedef kullanımlarını eşle
| Kavram | Anlamı |
|---|---|
typedef struct |
Veri yapısı |
typedef enum |
Adlandırılmış sabitler |
typedef fp |
Davranış soyutlama |
opaque |
Gizli iç yapı |