typedef struct
- C kursu
- Başlangıç
- Ders 96/116
- 5 dk
typedef ile struct'a yeni isim vermeyi öğrenirsin.
typedef struct: kısa ad
typedef bir türe başka bir ad verir. struct ile birlikte kullanıldığında struct sözcüğünü tekrar yazmadan değişken tanımlayabilirsin.
typedef struct {
int x;
int y;
} Point;
Point p = {3, 4};Burada Point artık bir tür adıdır; struct Point yazmana gerek kalmaz. Bu, özellikle uzun yapı adlarında kodu sadeleştirir. Anonim yapıya bir ad vermiş olursun; tanımı başka dosyalara taşımak da kolaylaşır.
typedef ile kullanım
typedef sonrası değişken tanımlamak daha kısadır. struct yazmadan yalnızca adı kullanırsın.
typedef struct {
char name[32];
int age;
} Person;
Person a;
Person b = {"Ayse", 25};Burada Person a ve Person b = {...} tanımları çok daha temiz görünür. Üye erişimi hâlâ . ile yapılır: b.age. Bu biçim, gerçek projelerde çok yaygındır; neredeyse her yapı typedef ile tanımlanır.
Uygulama typedef Point ile koordinat yazdır
typedef struct kullanarak Point adlı bir tür tanımla; int x ve int y üyeleri olsun. main içinde Point p = {7, 8} biçiminde bir değişken oluştur ve printf ile üyeleri yazdır.
Başlangıç kodu
#include <stdio.h>
/* typedef ile Point adlı yapı tanımla (int x, int y) */
int main(void) {
/* bir Point oluştur; printf ile yazdır */
return 0;
}Örnek çözüm
typedef struct { int x; int y; } Point;
Point p = {7, 8};
printf("%d %d\n", p.x, p.y);Beklenen çıktı
7 8
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Boşluğu doldur: typedef tanımı
____ struct {
int x;
int y;
} Point;
typedef struct {
int x;
int y;
} Point;
Açıklama: typedef struct ile kısa ad verilir.
2 Tanım ve eşdeğeri eşleştir
| Kavram | Anlamı |
|---|---|
typedef struct {...} Point; |
Tür adı verir |
Point p; |
struct'sız tanım |
struct Point p; |
uzun biçim |
p.x |
üye erişimi |
3 typedef struct tanımından sonra değişken nasıl tanımlanır?
- Point p; Doğru cevap
- struct Point p;
- typedef Point p;
- new Point p;
Açıklama: typedef sonrası yalnızca Point p; yazılır.