Prototype Meaning in C/C++

Prototype Meaning in Hindi: किसी भी Model के प्रारम्भिक रूप को Prototype कहा जाता है, फिर वह Model किसी भी प्रकार का हो सकता है। उदाहरण के लिए किसी Builder के लिए किसी नई Building का नक्‍शा या Blue Print उस Builder के लिए Building का Prototype है। इसी तरह से किसी Automobile Company के लिए किसी नई Car का Model नई बनाई जाने वाली कार का Prototype है। Programming Concept के अन्‍तर्गत सामान्‍यत: “C”“C++” Programming Languages में ही Prototype शब्‍द का प्रयोग किया जाता है।

जब हम  “C” व “C++” Programming Languages में कोई प्रोग्राम बनाते हैं, तो अलग-अलग तरह की जरूरतों को पूरा करने के लिए हम अलग-अलग तरह के Functions Create करते हैं, जिन्‍हें User Defined Functions कहा जाता है।

चूंकि इन Functions को Programmers अपनी जरूरत के अनुसार स्‍वयं Create करते हैं, इसलिए सामान्‍यत:  “C” व “C++” Programming Languages के  Compilers को इन नए बनाए गए Functions के बारे में कोई जानकारी नहीं होती है और जब तक Compiler को किसी भी नए Create किए गए User Defined Function के बारे में जानकारी नहीं होती है, तब तक हम हमारे  Program में उन नए Create किए गए Functions को Use नहीं कर सकते हैं। यदि हम ऐसा करते हैं, तो Program को Compile करते समय Compiler हमें Compile Time Error देता है। यानी हमारे Program को Compile नहीं होने देता।

इस समस्‍या से बचने के लिए ये जरूरी होता है कि हमने जो भी User Defined Function Create किया है, उसे main() Function में Use करने से पहले Compiler को इस बात का पता रहे कि main() Function में किन-किन Functions को Use किया गया है। Compiler को इस बात की जानकारी देने के लिए हम अपने Create किए गए सभी Functions का Prototype main() Function से पहले Specify करते हैं। इन Specifications को Function Declaration भी कहते हैं।

Prototype के Concept को आसानी से समझने के लिए हम निम्‍नानुसार एक उदाहरण देखते हैं, जिसमें हम दो संख्‍याओं को जोडने के लिए एक Function Declaration (Prototype) व उस Function का Definition दोनों Create कर रहे हैं और फिर उस Function को main() Function में Call कर रहे हैं-

/*Header File for using printf() and scanf() like Built-In Functions in our main() Function.*/
#include <stdio.h>

/* Function Declaration or Function Prototype of User Defined Function "addition()", so that we can use it in main() Function. */
int addition(int, int);

main()
{
    printf("Total of 10 and 20 is %d", addition(10,20));
}

/* Function Definition */
int addition(int a, int b)
{
    return a+b;
}

/*OUTPUT*/
Total of 10 and 20 is 30

जब ये Program Compile किया जाता है, तब Compiler Top to BottomLeft to Right इस Program को Compile करता है। परिणाम स्‍वरूप Compiler को सबसे पहले #include <stdio.h> Statement मिलता है, जो Compiler को इस बात का Instruction देता है, कि उसे stdio.h नाम की Header File को Current Program में Include करना है, ताकि इस Header File में पहले से Define किए गए printf(), scanf() जैसे Functions को main() Function में Use किया जा सके।

फिर Compiler int addition(int, int); Statement पर पहुंचता है। ये Statement Compiler को इस बात का Instruction देता है कि Current Program के main() Function में हम addition() नाम का एक UDF (User Defined Function) Use करेंगे, जो Parameter के रूप में दो Integer Type के मानों को Accept करेगा और Return Value के रूप में एक Integer Type की Value Calling Function को Return करेगा।

ये Declaration ही Prototype कहलाता है, जो Compiler को एक नए User Defined Function के बारे में तीन जानकारियां देता है:

  1. नए User Defined Function का नाम क्‍या है।
  2. Function किस-किस प्रकार के और कितने Parameters Argument के रूप में Accept करता है और
  3. किस प्रकार का मान Return Value के रूप में Return करता है।

इस Function Declaration के बाद Compiler main() Functionपर पहुंचता है और main() Function के printf() Statement को Execute करता है, जिसमें addition() नाम का Function मान 1020 के दो Parameters के साथ Call होता है। Function Call होते ही Program Control addition() नाम के Function के Definition पर पहंचता है।

Function Definition में आने वाले Parameters को Process करके आपस में जोडा जाता है और उनके जोड को फिर से Calling Function में Return कर दिया जाता है, जहां वह मान 30 Output में Print हो जाता है।