با سلام خدمت تمامی دوستان عزیز سایت پی وی لرن .و کاربرانی که دوره کامل آموزش زبان C را دنبال می کنند. و کاربرانی که با سری آموزش های زبان C همراهمون هستند. Unions در C رو دیدیم و در این جلسه به typedef در زبان C و تفاوت typedef با #defineدر زبان C و … می پردازیم.
زبان برنامه نویسی C یک کلمه کلیدی به نام typedef را فراهم می کند که می توانید از آن برای ایجاد یک نوع نام جدید استفاده کنید.
در مثال زیر عبارت BYTE برای نوع داده unsigned char تعریف شده است:
1 | typedef unsigned char BYTE; |
بعد از تعریف بالا، زمانی که شما از عبارت BYTE استفاده می کنید.کامپایلر آن را معادل unsigned char در نظر می گیرد.
همچنین شناسه BYTE برای unsigned char به اختصار استفاده شود.
در حقیقت یک نام مستعار برای یک نوع خاص تعریف می شود. برای نمونه:
1 | BYTE b1, b2; |
بر اساس قرار داد از حروف بزرگ برای نام جدید استفاده می شود.
چرا که به برنامه نویس یاد آوری کند که این نوع داده را خود یا برنامه نویس دیگر تعریف کرده است و یک نام مستعار می باشد.
اما شما می توانید از حروف کوچک هم مانند نمونه زیر استفاده کنید:
1 | typedef unsigned char byte; |
شما همچنین می توانید با استفاده از typedef برای نوع داده هایی که توسط کاربر ایجاد شده اند نیز نام مستعار تعریف کنید.
به عنوان مثال، شما می توانید از نوع typedef با ساختاری برای تعریف یک نوع داده جدید استفاده کنید.
سپس از آن نوع داده برای تعریف متغیرهای ساختاری به صورت مستقیم استفاده کنید.
در مثال زیر یک نام مستعار برای ساختار Books تعریف شده است.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | #include <stdio.h> #include <string.h> typedef struct Books { char title[50]; char author[50]; char subject[100]; int book_id; } Book; int main( ) { Book book; strcpy( book.title, "C Programming"); strcpy( book.author, "Nuha Ali"); strcpy( book.subject, "C Programming Tutorial"); book.book_id = 6495407; printf( "Book title : %s\n", book.title); printf( "Book author : %s\n", book.author); printf( "Book subject : %s\n", book.subject); printf( "Book book_id : %d\n", book.book_id); return 0; } |
بعد از کامپایل واجرای برنامه نتیجه زیر را خواهیم دید.
1 2 3 4 | Book title : C Programming Book author : Nuha Ali Book subject : C Programming Tutorial Book book_id : 6495407 |
define# و Typedef یعنی هر دو دستور به منظور تعریف نام مستعار استفاده می شوند اما تفاوت هایی دارند که در زیر مشاهده می کنید:
اما #define می تواند برای مقادیر هم نام مستعار تعریف کند.
برای نمونه ONE برای مقدار۱ تعریف می شود.
مثال زیر نشان می دهد که چگونه از define#در یک برنامه برای ایجاد نام مستعار استفاده کنید.
1 2 3 4 5 6 7 8 9 10 11 | #include <stdio.h> #define TRUE 1 #define FALSE 0 int main( ) { printf( "Value of TRUE : %d\n", TRUE); printf( "Value of FALSE : %d\n", FALSE); return 0; } |
بعد از کامپایل واجرای برنامه نتیجه زیر را خواهیم دید.
1 2 | Value of TRUE : 1 Value of FALSE : 0 |
خوشحالیم ازاینکه در این مجموعه آموزشها همراه ما هستید.
به پایان مبحث typedef در زبان C و تفاوت typedef با #defineدر زبان C رسیدیم .
جلسه بعد را با ورودی / خروجی ها در زبان C ادامه خواهیم داد.
amir ali
عالی
خیلی ممنون بابت توضیحات شفاف و دقیق
پر قدرت ادامه بدید