C typedef
C typedef
typedef kalit so‘zi mavjud tip uchun yangi nom (taxallus, ya’ni alias) yaratish imkonini beradi. Bu murakkab e’lonlarni o‘qishni va kodingizni qo‘llab-quvvatlashni osonlashtiradi.
Masalan, har doim float deb yozish o‘rniga, kodni tushunarliroq qilish uchun Temperature nomli yangi tip yaratishimiz mumkin:
Misol
#include <stdio.h>
typedef float Temperature;
int main() {
Temperature today = 25.5;
Temperature tomorrow = 18.6;
printf("Today: %.1f C\n", today);
printf("Tomorrow: %.1f C\n", tomorrow);
return 0;
}
O‘zingiz sinab ko‘ring »
Bu yerda Temperature — float uchun shunchaki boshqa nom. Biroq kod ancha ifodaliroq: u bu sonlar oddiy suzuvchi nuqtali sonlar emas, balki harorat qiymatlari ekanini bildiradi.
Nima uchun typedef ishlatiladi?
- Kodni soddalashtiradi: tip nomlari qisqaroq va o‘qishga osonroq bo‘ladi.
- Aniqlikni oshiradi: maqsadni yaxshiroq ifodalaydi (masalan, shunchaki
into‘rnigaAGE). Shuningdek, ko‘plab o‘zgaruvchilar bir xil asosiy tipga (masalan,floatyokidouble) ega bo‘lganda chalkashlikning oldini olishga yordam beradi.
Bilish foydali: Zamonaviy C tilida kodni toza va o‘qishga oson saqlash uchun typedef ko‘pincha struct, enum va funksiya ko‘rsatkichlari bilan birga ishlatiladi.
typedef va struct
typedef struct bilan birga ishlatilganda foydali bo‘lishi mumkin, chunki u har safar struct yozishdan xalos qiladi:
Misol
#include <stdio.h>
// Without typedef:
struct Car {
char brand[30];
int year;
};
// With typedef:
typedef struct {
char brand[30];
int year;
} Car;
int main() {
struct Car car1 = {"BMW", 1999}; // needs "struct"
Car car2 = {"Ford", 1969}; // shorter with typedef
printf("%s %d\n", car1.brand, car1.year);
printf("%s %d\n", car2.brand, car2.year);
return 0;
}
O‘zingiz sinab ko‘ring »
Bu misol typedef bir nechta struct o‘zgaruvchilari, masalan, turli avtomobil modellari bilan ishlashni qanday osonlashtirishini ko‘rsatadi:
Misol
#include <stdio.h>
// With typedef
typedef struct {
char brand[30];
char model[30];
int year;
} Car;
int main() {
Car car1 = {"BMW", "X5", 1999};
Car car2 = {"Ford", "Mustang", 1969};
Car car3 = {"Toyota", "Corolla", 2011};
printf("%s %s %d\n", car1.brand, car1.model, car1.year);
printf("%s %s %d\n", car2.brand, car2.model, car2.year);
printf("%s %s %d\n", car3.brand, car3.model, car3.year);
return 0;
}
O‘zingiz sinab ko‘ring »
Bu yerda strukturalar boshqa strukturalar ichiga joylashtirilganda typedef kodni qanday toza saqlashini ko‘rishingiz mumkin:
Misol
#include <stdio.h>
// Define three structs with typedef
typedef struct {
char firstName[20];
char lastName[20];
} Owner;
typedef struct {
char brand[20];
int year;
Owner owner;
} Car;
typedef struct {
char name[30];
Car featuredCar;
} Dealership;
int main() {
Owner person = {"John", "Doe"};
Car car1 = {"Toyota", 2010, person};
Dealership d = {"City Motors", car1};
printf("Dealership: %s\n", d.name);
printf("Featured Car: %s (%d), owned by %s %s\n",
d.featuredCar.brand,
d.featuredCar.year,
d.featuredCar.owner.firstName,
d.featuredCar.owner.lastName);
return 0;
}
O‘zingiz sinab ko‘ring »
typedef kalit so‘zidan foydalanish yoki foydalanmaslik o‘zingizga bog‘liq. Usiz ham kodingiz xuddi shunday ishlaydi. Biroq zamonaviy C tilida u kodni qisqaroq, tushunarliroq va qo‘llab-quvvatlashga osonroq qilish uchun tez-tez ishlatiladi.
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
