logo

C'de typedef

typedef C programlamada halihazırda var olan değişkene anlamlı adlar vermek için kullanılan bir anahtar kelimedir. C programı . Komutların takma adını tanımladığımızda da benzer şekilde davranır. Kısaca bu anahtar kelimenin halihazırda var olan bir değişkenin adını yeniden tanımlamak için kullanıldığını söyleyebiliriz.

Typedef'in sözdizimi

 typedef 

Yukarıdaki sözdiziminde, ' mevcut_adı' zaten var olan bir değişkenin adı iken ' takma ad' mevcut değişkene verilen başka bir addır.

Örneğin, türünde bir değişken oluşturmak istediğimizi varsayalım. imzasız int , bu türden birden fazla değişkeni bildirmek istersek bu sıkıcı bir görev haline gelir. Sorunun üstesinden gelmek için kullanıyoruz bir daktilo tanımı anahtar kelime.

 typedef unsigned int unit; 

Yukarıdaki açıklamalarda şunu beyan etmiştik. birim unsigned int türündeki değişkeni kullanarak bir daktilo tanımı anahtar kelime.

Artık tür değişkenlerini oluşturabiliriz. imzasız int aşağıdaki ifadeyi yazarak:

 unit a, b; 

yazmak yerine:

 unsigned int a, b; 

Şu ana kadar gözlemledik ki typedef anahtar sözcüğü, halihazırda var olan bir değişken için alternatif bir ad sağlayarak güzel bir kısayol sağlar. Bu anahtar kelime, özellikle uzun veri türleri, yapı bildirimleri ile uğraşırken kullanışlıdır.

kabuk betiğini çalıştırılabilir yap

Basit bir örnek üzerinden anlayalım.

 #include int main() { typedef unsigned int unit; unit i,j; i=10; j=20; printf('Value of i is :%d',i); printf('
Value of j is :%d',j); return 0; } 

Çıktı

 Value of i is :10 Value of j is :20 

Typedef'in yapılarla kullanılması

Aşağıdaki yapı bildirimini göz önünde bulundurun:

 struct student { char name[20]; int age; }; struct student s1; 

Yukarıdaki yapı bildiriminde değişkeni oluşturduk. öğrenci aşağıdaki ifadeyi yazarak yazın:

 struct student s1; 

Yukarıdaki ifade bir değişkenin yani s1'in yaratılışını göstermektedir ancak ifade oldukça büyüktür. Bu kadar büyük bir ifadeden kaçınmak için şu ifadeyi kullanırız: typedef tür değişkenini oluşturmak için anahtar kelime öğrenci .

 struct student { char name[20]; int age; }; typedef struct student stud; stud s1, s2; 

Yukarıdaki ifadede değişkeni tanımladık. damızlık tip yapı öğrencisi. Artık şunu kullanabiliriz: damızlık türünde değişkenler oluşturmak için bir programdaki değişken öğrenciyi yapılandır .

Yukarıdaki typedef şu şekilde yazılabilir:

 typedef struct student { char name[20]; int age; } stud; stud s1,s2; 

Yukarıdaki beyanlardan şu sonuca varıyoruz: typedef anahtar kelime kodun uzunluğunu ve veri türlerinin karmaşıklığını azaltır. Ayrıca programın anlaşılmasına da yardımcı olur.

Yapı bildirimini yazdığımız başka bir örneğe bakalım.

 #include typedef struct student { char name[20]; int age; }stud; int main() { stud s1; printf('Enter the details of student s1: '); printf('
Enter the name of the student:'); scanf('%s',&s1.name); printf('
Enter the age of student:'); scanf('%d',&s1.age); printf('
 Name of the student is : %s', s1.name); printf('
 Age of the student is : %d', s1.age); return 0; } 

Çıktı

 Enter the details of student s1: Enter the name of the student: Peter Enter the age of student: 28 Name of the student is : Peter Age of the student is : 28 

İşaretçilerle typedef kullanma

Ayrıca işaretçi değişkenlerine başka bir ad veya takma ad da verebiliriz. daktilo tanımı .

Örneğin, normalde aşağıda gösterildiği gibi bir işaretçi bildiririz:

 int* ptr; 

Yukarıdaki işaretçi değişkenini aşağıda verildiği gibi yeniden adlandırabiliriz:

 typedef int* ptr; 

Yukarıdaki ifadede type değişkenini bildirdik. dahili* . Artık type değişkenini oluşturabiliriz. dahili* sadece ' tuşunu kullanarak ptr' aşağıdaki ifadede gösterildiği gibi değişken:

hızlı sıralama java
 ptr p1, p2 ; 

Yukarıdaki açıklamada, p1 Ve p2 ' türündeki değişkenler ptr' .