کاربرد typedef چیه ؟ - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

کاربرد typedef چیه ؟

+4 امتیاز

سلام

typedef struct 
{
  int x;
} var;
var v;

 

چرا توی کد بالا از typedef استفاده شده ؟

اصلا typedef کاربردش چیه ؟

سوال شده اسفند 3, 1392  بوسیله ی هفت خط (امتیاز 116)   1 10 17
دوباره تگ گذاری شد فروردین 23, 1393 بوسیله ی BlueBlade

1 پاسخ

+6 امتیاز
 
بهترین پاسخ

typedef یا type definition

در c/c++ میشه برای استفاده از type ها بوسیله کلمه کلیدی typedef اسم جدیدی رو در نظر گرفت .

نحوه تعریف به این شکله :

typedef type newName ;

مثلا :

typedef int var;
var a;// a be shekle int sakhte mishe inja 

یا یک مثال دیگه که خیلی ازش استفاده میشه :

typedef unsigned int size_t;

کاربردی هم که دارن برای خوانایی بیشتر و سرعت بیشتر درنوشتن و تغییر کد هست .

فرض کنید شما می خواهین  id و اسم چند نفر رو ذخیره کنین یک راهش میتونه این شکل باشه :

 std::vector<std::pair<int,std::string>> info;

خب جالا شما فرض کنین که 20 جا داخل فایل می خواین کد بالا رو بنویسین خب طبیعتا هم حجم کد بالا میره هم خوانایی کم میشه

این جاست که میتونین از typedef استفاده کنین :

typedef std::vector<std::pair<int,std::string>> Data;

و هر جا که خواستین به این شکل از این وکتور شی بسازین :

 Data info;

توی برای ساختن struct باید به این شکل عمل کرد :

struct MyStruct
{
    int a;
    //...
};

int main ()
{
    struct MyStruct s;
}

حالا برای این که از اون struct اضافی استفاده نشه از typedef استفاده می کنن :

typedef struct  MyStruct
{
    int a;
    //...
}MyStruct;

int main ()
{
    MyStruct s;
}

البته در c++ نیازی به typedef برای struct نیست .

 

در c++11 به جای typedef میشه از using استفاده کرد و بهتر هم هست که از using استفاده بشه .

نحوه تعریف :

using newName=type;

مثلا همون مثال اول  و دوم به این شکل میشه :

#include <utility>
#include <vector>
#include <iostream>

using Data= std::vector<std::pair<int,std::string>>;
using MyInt=int;

int main ()
{
    Data info;
    MyInt a;
    //..
    return 0;
}

 

پاسخ داده شده اسفند 3, 1392 بوسیله ی BlueBlade (امتیاز 15,315)   15 18 89
انتخاب شد اسفند 5, 1392 بوسیله ی هفت خط
...