Typedef क्या है? – What is Typedef in C in Hindi

हेलो फ्रेंड्स आज के इस आर्टिकल में हम typedef के बारे में बात करने वाले है | 

आज हम विस्तार से जानेंगे कि typedef क्या है? (What is Typedef in C in Hindi) और सी लैंग्वेज में typedef का उपयोग कैसे करते है ?

तो चलिए बिना समय गवाए सबसे पहले जानते है कि typedef क्या है? (What is Typedef in C Language in Hindi)

Typedef in C in Hindi

Typedef क्या है? (What is Typedef in C in Hindi)

typedef एक कीवर्ड है जिसका उपयोग सी लैंग्वेज में pre-defined और user-defined डेटा टाइप्स को नया नाम देने के लिए किया जाता है | 

For Example – यदि मैं int डेटा टाइप का नाम ” INTEGER ” रखना चाहता हु तो इसके लिए मुझे typedef का उपयोग करना पड़ेगा | 

इसका बेसिक सिंटेक्स कुछ ऐसा होता है -:

Syntax -: 

typedef data_type new_name;

typedef : यह कीवर्ड है जो सी लैंग्वेज में डेटा टाइप का नाम बदलने के लिए उपयोग किया जाता है |

data_type : यहाँ पर वो डेटा टाइप होता है जिसका नाम हम बदलना चाहते है |

new_name : पुराने डेटा टाइप के नाम को बदल कर जो नया नाम रखते है वो नया नाम इस जगह आता है | 

Example -: 

typedef int INTEGER;

इस उदाहरण में मेरे typedef int INTEGER; लिखने से अब मैं अपने प्रोग्राम में int को एक नए नाम INTEGER के रूप में उपयोग कर सकता हु | 

Example -:

#include<stdio.h>
void main()
{
  typedef int INTEGER;

INTEGER a, b;
printf("Enter Two Numbers\n");
scanf("%d %d",&a, &b);

printf("\nSum of Two Numbers is %d", a+b);
}

इस प्रोग्राम में हमने int डेटा टाइप को typedef int INTEGER; करके एक नया नाम दिया | जब हमने typedef int INTEGER; किया तब int डेटा टाइप का नया नाम INTEGER हो गया |  हालाँकि की हम int कीवर्ड के द्दारा भी वेरिएबल बना सकते है मगर अब हम INTEGER द्दारा भी इन्टिजर टाइप के वेरिएबल बना सकते है | 

इस प्रोग्राम में हमने INTEGER की मदद से a और b नाम से दो वेरिएबल बनाये है और यूजर से दो नंबर इनपुट लेकर उनका जो sum होगा उसे स्क्रीन में printf की मदद से प्रिंट कराया है | 

इसका रिजल्ट कुछ ऐसा आएगा -:

Output -:

Enter Two Numbers
12
20
Sum of Two Numbers is 32

Note -: typedef का डिक्लेरेशन यदि किसी फंक्शन या main() फंक्शन के अंदर ही होता है तो इसे लोकल डिक्लेरेशन कहते है तथा इसका उपयोग हम केवल उस फंक्शन या ब्लॉक के अंदर ही कर सकते है | यदि हम लोकल डिक्लेअर typedef का उपयोग फंक्शन से बहार करने का प्रयास करते है तो कम्पाइलर एरर देता है | 

typedef का डिक्लेरेशन यदि फंक्शन के बारह होता है तब इसे ग्लोबल डिक्लेरेशन कहते है | ग्लोबल डिक्लेअर typedef का उपयोग हम प्रोग्राम में कही भी कर सकते है | 

Typedef with Structure

जैसे की मैंने ऊपर कहा, typedef का उपयोग हम pre defined और user-defined डेटा टाइप के नाम को बदलने के लिए करते है | structure एक user-defined डेटा टाइप है तो इसके साथ भी हम typedef का उपयोग कर सकते है | 

इसका बेसिक सिंटेक्स कुछ ऐसा होता है -:

Syntax -:

typedef struct
{
    data_type member1;
    data_type  member2;
    data_type  member3;
} type_name; 

Note -: type_name इस स्ट्रक्चर को दिया जाने वाला नया नाम है |

Example -:

#include<stdio.h>
#include<string.h>
typedef struct BK
{    
    int book_id;
    char title[200];
    int price;
}Book;

void main()
{ Book b1; 
printf("Enter Book Records\n");
printf("Book_id = ");
scanf("%d",&b1.book_id);
printf("Book Title = ");
scanf("%s",&b1.title);
printf("Book price = ");
scanf("%d", &b1.price);

printf("\n Book ID = %d, Book Title = %s, Book Price = %d", b1.book_id, b1.title, b1.price);
}

Output -:

Enter Book Records
Book_id = 100
Book Title = CodeWithJeetu
Book price = 299

Book ID = 100, Book Title = CodeWithJeetu, Book Price = 299

इस प्रोग्राम में हमने BK नाम से जो स्ट्रक्चर बनाया था उसको typedef की मदद से Book नाम में चेंज कर दिया | इसके बाद हमने एक बुक के रिकॉर्ड को मेंबर वेरिएबल में इनपुट लेकर इनके वैल्यू को स्क्रीन में प्रिंट करा दिया |  

नोट -:

  1. जब हम typedef की मदद से स्ट्रक्चर डेटा टाइप के नाम को बदलते है तब हमे इस नए डेटा टाइप के साथ struct कीवर्ड का उपयोग करना नहीं पड़ता | जबकि नार्मल स्ट्रक्चर डेटा टाइप के साथ हमे struct कीवर्ड का उपयोग करना पड़ता था | 
  1. यह प्रोग्राम की readability बढ़ाने के लिए उपयोग किया जाता है इसकी मदद से हम कसी भी user डिफाइंड और predefined दोनों ही तरह के डेटा टाइप के name को चेंज कर सकते है | 

Typedef with Pointer 

पॉइंटर एक ऐसा वेरिएबल होता है जिसमे हम किसी दूसरे वेरिएबल के एड्रेस को contain करता है  पॉइंटर के साथ जब हम typedef का उपयोग करके हम एक साथ कई सारे पॉइंटर बना सकते है आइये इस बात को हम एक उदाहरण से समझते है | 

int * x, y , z;

सी लैंग्वेज में जब हमे पॉइंटर बनाना होता है तब हम (*) सिंबल का उपयोग करते है ऊपर दिए गए स्टेमेंट में x एक पॉइंटर वेरिएबल है और y तथा z एक नार्मल वेरिएबल है | 

आइये अब हम typedef का उपयोग करके स्टेटमेंट में थोड़ा बदलाव करते है | 

typedef int* intPtr;

इस int पॉइंटर को हमने intPtr नाम में बदल दिया है अब यदि हम intPtr की मदद से कोई भी वेरिएबल बनाते है तब सभी वेरिएबल एक पॉइंटर वेरिएबल होंगे | 

intPtr x, y , z;

इस उदाहरण में x, y , z; तीनो एक पॉइंटर वेरिएबल है जबकि पहले वाले उदाहरण में केवल x एक पॉइंटर वेरिएबल था | तो इस तरह अब हम इस intPtr की मदद से जितने चाहे उतने पॉइंटर बना सकते है | 

यदि आपको पॉइंटर के बारे में अच्छे से नहीं पता तो आप इसके बारे में यहाँ से पढ़ सकते है -: Pointer in C 

Conclusion 

दोस्तों आशा करता हु कि आज के इस आर्टिकल को पढ़ने के बाद आपको typedef क्या है? (What is Typedef in C in Hindi) और सी लैंग्वेज में typedef का उपयोग कैसे करते है ? से संबंधित सभी जानकारी मिल गई होगी और आपको और कही इसके बारे में सर्च करना नहीं पड़ेगा |

अगर आप सी लैंग्वेज का Complete Tutorial चाहते है तो मेरे इस पोस्ट C Language Tutorial In Hindi को देखे यहाँ आपको C Programming Language के सभी टॉपिक्स step by step मिल जाएगी |

दोस्तों आशा करता हु कि आपको ये पोस्ट पसंद आई होगी और आपको typedef क्या है? (What is Typedef in C in Hindi) और सी लैंग्वेज में typedef का उपयोग कैसे करते है ? के बारे में काफी जानकरी हुई होगी |

अगर आपको ये पोस्ट पसंद आया है तो इस पोस्ट को अपने अपने दोस्तों को शेयर करना न भूलिएगा ताकि उनको भी ये जानकारी प्राप्त हो सके |

अगर आपको अभी भी typedef क्या है? (What is Typedef in C in Hindi) से संबंधित कोई भी प्रश्न या Doubt है तो आप जरूर बताये मैं आपके सभी सवालों का जवाब दूँगा और ज्यादा जानकारी के लिए आप हमसे संपर्क कर सकते है

एसी ही नया टेक्नोलॉजी ,Programming Language, Coding , C Language, C++, Python Course , Java Tutorial से रिलेटेड जानकारियाँ पाने के लिए हमारे इस वेबसाइट को सब्सक्राइब कर दीजिए | जिससे हमारी आने वाली नई पोस्ट की सूचनाएं जल्दी प्राप्त होगी |

Jeetu Sahu is A Web Developer | Computer Engineer | Passionate about Coding, Competitive Programming and Blogging