PDA

View Full Version : سوال: typedef چیه و چیکار میکنه ؟



kia.celever
سه شنبه 05 بهمن 1389, 11:03 صبح
سلام. کسی میدونه typedef چیه و چیکار میکنه ؟

mehdi.mousavi
سه شنبه 05 بهمن 1389, 12:43 عصر
سلام.
در مواقعی که قصد دارید از یک Data Type مشخص برای declare کردن متغیرهای مختلف استفاده کنید، میتونید نام جدیدی به اون Type بدید. بطور مثال، برای اینکه اسم جدیدی به unsigned long بدیم، میتونیم بدین شکل عمل کنیم:


typedef unsigned long DWORD;بدین ترتیب هر جا بخوام، میتونم جای unsigned long بنویسم DWORD. برای مثال:


DWORD dw = 23;یکی دیگه از مواقعی که از typedef استفاده میشه، تغییر نام یک Pointer to Function هستش. در واقع شما میتونید به Signature یک تابع اسمی بدید، سپس در طول برنامه برای اشاره به اون تابع از اون نام استفاده کنید:


typedef int (*pfn)(double);اینجا، من pfn رو بگونه ای تعریف کردم که به توابعی اشاره میکنه که یک پارامتر double بعنوان ورودی میگیرن و خروجی اونها، int هستش (اینگونه typedef ها در MFC بسیار زیاد استفاده میشه). از دیگر موارد استفاده typedef، اسم گذاری structure هاست:


typedef struct Person *PersonPtr;اینجا، جای اینکه هر دفعه بنویسم struct Person * کافیه بنویسم PersonPtr... (از اینگونه typedef ها در COM زیاد استفاده میشه، مثل تعریف Smart Pointer ها و ...).

موفق باشید.