C programlama dili, typedef
adı verilen ve bir data tipine yeni bir isim vermek için kullanabileceğiniz bir anahtar kelime sağlar. Aşağıda, bir BYTE
terimini tanımlamak için örnek verilmiştir;
typedef unsigned char BYTE;
Bu tip tanımı yapıldıktan sonra BYTE
tanımlayıcı, örneğin unsigned char
türü için bir kısaltma olarak kullanılabilir.
BYTE b1, b2;
Sözleşmeye göre, kullanıcılara tür adının gerçekten bir sembolik kısaltma olduğunu hatırlatmak için bu tanımlar için büyük harf kullanılır, ancak şu şekilde küçük harf kullanabilirsiniz:
typedef unsigned char byte;
#define yalnızca değerler için takma ad tanımlamak için kullanılabilirken typedef data tiplerine sembolik adlar vermekle sınırlıdır.
‘typedef’ yorumlaması derleyici tarafından yapılırken #define deyimleri ön-işlemci tarafından işlenir.
‘typedef struct’ yapısını kullanarak yeni bir data tipi tanımlayabilirsiniz ve daha sonra struct değişkenlerini tanımlamak için bu data tipini kullanabilirsiniz.
#include<stdio.h>
int main()
{
typedef int Number;
Number num1 = 40,num2 = 20;
Number cevap;
cevap = num1 + num2;
printf("Cevap : %d",cevap);
return(0);
}
Cevap : 60
Yukarıdaki programda, veri türüne takma ad oluşturmak için typedef kullandık. ‘Int’ veri türüne takma ad oluşturduk. Tamsayı veri türüne (ör. Number) yeni bir isim verdik.
Kullanıcı tanımlı veri türlerinize de bir isim vermek için typedef
kullanabilirsiniz. Örneğin, yeni bir veri türünü tanımlamak için struct
ile typedef yapısını kullanabilir ve daha sonra struct
değişkenlerini doğrudan aşağıdaki gibi tanımlamak için bu veri tipini kullanabilirsiniz:
typedef int XYZ;
XYZ age;
XYZ roll;
typedef struct
{
char ename[30];
int ssn;
int deptno;
}employee;
Veya
typedef struct Record
{
char ename[30];
int ssn;
int deptno;
}employee;
İkinci örnekte, ‘Record’, etiket-isim dir. ’employee’ hiçbir şeydir fakat Yeni Veri Tipi dir. Artık ‘employee’ türündeki değişkenleri oluşturabiliriz. Etiket isim isteğe bağlıdır.
employee e1,e2;
#include<stdio.h>
typedef struct b1 {
char bname[30];
int ssn;
int pages;
}book;
book b1 = {"Let Us C",1000,90};
int main()
{
printf("\nName of Book : %s",b1.bname);
printf("\nSSN of Book : %d",b1.ssn);
printf("\nPages in Book : %d",b1.pages);
return(0);
}
cc -std=c11 -Wall -g my_app.c -o my_app
Name of Book : Let Us C
SSN of Book : 1000
Pages in Book : 90