Typedef in C Language In Hindi

Language C

C programming में एक keyword है typedef जिसका इस्तेमाल हम किसी भी type को नया नाम देने के लिए कर सकते हैं इसको हम एक उदहारण से समझने की कोशिश करते हैं

typedef unsigned char  MYBYTE;

तो फिर MYBYTE एक नया वेरिएबल होने की जगह खुद वेरिएबल की टाइप हो गया इससे अब हम इसी तरह के और वेरिएबल डिफाइन कर सकते हैं जैसे अब हम

MYBYTE m1 , m2;

लिख सकते हैं और नए वेरिएबल m1 और m2 भी unsigned char type के वेरिएबल होंगे |

वैसे ये कोई नियम तो नहीं पर typedef के लिए वेरिएबल का नाम कैपिटल में लिखते हैं जिससे हमें कहीं भी देखकर ही मालूम हो जाये कि इसी वेरिएबल को typedef से डिफाइन किया है |

 

#include <stdio.h>
#include <string.h>
 
typedef struct Books {
   int book_id;
   char title[50];
   char author[50];
   float price;
   
} BOOK;

 /* यहां पर BOOK भी typedef से Struct Books की तरह का वेरिएबल define हो गया है */

int main( ) {

   BOOK book;
   book.book_id = 207;
   strcpy( book.title, "C Programming in Hindi");
   strcpy( book.author, "Amit Kumar"); 
   book.price = 414.00;
   
   printf( "Book book_id : %dn", book.book_id);
   printf( "Book title : %sn", book.title);
   printf( "Book author : %sn", book.author);
   printf( "Book price : %fn", book.price);
   

   return 0;
}

output

Book book_id : 207

Book title : C Programming in Hindi

Book author : Amit Kumar

Book price414.00

typedef vs #define

#define एक  C directive है जो कि typedef की तरह ही काम करता है | पर इन दोनों में कुछ अंतर भी हैं

  • typedef  में सिर्फ type  के नाम को ही नाम बदल सकते हैं  जबकि #define से हम किसी वैल्यू के नाम का alias नाम भी रख सकते हैं
  • typedef statement का interpretation compiler से होता है जबकि #define  का interpretation पहले pre-processor से फिर compiler से होता है |
#include <stdio.h>
 
#define MALE  1
#define FEMALE 0
 
int main( ) {
   printf( "Value of MALE : %dn", MALE);
   printf( "Value of FEMALE : %dn", FEMALE);

   return 0;
}
output
Value of MALE : 1
Value of FEMALE : 0 

इस statment में  compile होने से पहले ही pre-prcessor के चलने पर MALE और FEMALE की actual value से replace हो जाता है

Leave a Reply

Your email address will not be published. Required fields are marked *