C typedef


ULASHISH

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 int o‘rniga AGE). Shuningdek, ko‘plab o‘zgaruvchilar bir xil asosiy tipga (masalan, float yoki double) 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!