Latest web development tutorials

C typedef و

توفر لغة C على الكلمات الرئيسيةtypedef و، يمكنك استخدامه لاتخاذ اسما جديدا للنوع.يحدد المثال التاليBYTE المدى هو الأرقام بايت واحد:

typedef unsigned char BYTE;

بعد هذا التعريف نوع، يمكن استخدامه كمعرف بايتغير موقعة نوع شاراختصار، مثل:

BYTE  b1, b2;

من الاتفاقية، سيتم تعريف رسملة خطابات من أجل تنبيه المستخدم إلى كتابة اسم رمزي هو اختصار، ولكن يمكنك أيضا استخدام أحرف صغيرة، على النحو التالي:

typedef unsigned char byte;

يمكنك أيضا استخدامtypedef وإلى أنواع البيانات المخصصة لأخذ الاسم الجديد للمستخدم.على سبيل المثال، يمكنك استخدام typedef وهيكل لتحديد نوع البيانات الجديدة، ومن ثم استخدام هذه البيانات نوع جديد لتحديد هيكل المتغيرات مباشرة، على النحو التالي:

#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;
}

عندما يتم ترجمة التعليمات البرمجية أعلاه وتنفيذها، وتنتج النتائج التالية:

Book  title : C Programming
Book  author : Nuha Ali
Book  subject : C Programming Tutorial
Book  book_id : 6495407

typedef ومقابل رقم تعريف

يستخدم C# تعريف التوجيه لتحديد اسم مستعار لمجموعة متنوعة من أنواع البيانات، وtypedef وماشابه ذلك، ولكن لديهم الاختلافات التالية:

  • typedef وأسماء رمزية فقط لtypedefs،رقم تعريف لا يمكن فقط تحديد نوع الاسم المستعار، ولكن أيضا تحديد اسم مستعار للقيمة، على سبيل المثال، يمكنك تحديد 1 واحد.
  • يتم تنفيذtypedef ومن قبل المجمع تفسيرها،ويتم بيان رقم تعريف بها قبل معالجتها من قبل المجمع.

هنا هو أبسط استخدام رقم تعريف:

#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;
}

عندما يتم ترجمة التعليمات البرمجية أعلاه وتنفيذها، وتنتج النتائج التالية:

Value of TRUE : 1
Value of FALSE : 0