Function prototype
कंप्यूटर प्रोग्रामिंग में, एक फ़ंक्शन प्रोटोटाइप या फ़ंक्शन इंटरफेस एक फ़ंक्शन की घोषणा है जो फ़ंक्शन के नाम और प्रकार के हस्ताक्षर (एरिटी, डेटा प्रकार के मापदंड, और वापसी प्रकार) को निर्दिष्ट करता है, लेकिन फ़ंक्शन बॉडी को छोड़ देता है। जबकि एक फ़ंक्शन परिभाषा निर्दिष्ट करती है कि फ़ंक्शन कैसे करता है जो वह करता है ("कार्यान्वयन"), एक फ़ंक्शन प्रोटोटाइप केवल अपने इंटरफ़ेस को निर्दिष्ट करता है, अर्थात। कौन से डेटा प्रकार अंदर जाते हैं और उससे बाहर आते हैं। "फंक्शन प्रोटोटाइप" शब्द का उपयोग विशेष रूप से प्रोग्रामिंग भाषाओं सी और सी + + के संदर्भ में किया जाता है जहां हेडर फ़ाइलों में कार्यों की घोषणाओं को आगे रखने से एक प्रोग्राम को अनुवाद इकाइयों में विभाजित करने की अनुमति मिलती है, अर्थात। उन भागों में जिन्हें एक संकलक अलग से ऑब्जेक्ट फ़ाइलों में अनुवाद कर सकता है, जिसे एक लिंकर द्वारा निष्पादन योग्य या पुस्तकालय में जोड़ा जा सकता है। फ़ंक्शन घोषणा फ़ंक्शन परिभाषा से पहले होती है, जिसमें अन्य प्रासंगिक विशेषताओं के साथ नाम, वापसी प्रकार और भंडारण वर्ग का विवरण दिया जाता है। फंक्शन प्रोटोटाइप का उपयोग तब किया जा सकता है जब या तोः एक बाहरी प्रकार को परिभाषित करना एक इंटरफेस भाग बनाना एक प्रोटोटाइप में, पैरामीटर नाम वैकल्पिक होते हैं (और सी/सी + + में फंक्शन प्रोटोटाइप स्कोप होता है, जिसका अर्थ है कि उनका स्कोप प्रोटोटाइप के अंत में समाप्त होता है), हालांकि, प्रकार सभी संशोधकों के साथ आवश्यक है (जैसे। यदि यह एक सूचक या पैरामीटर का संदर्भ है) अकेले को छोड़कर। ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग में, इंटरफेस और अमूर्त तरीके एक ही उद्देश्य को पूरा करते हैं। उदाहरण निम्नलिखित फ़ंक्शन प्रोटोटाइप पर विचार करेंः शून्य योग (इंट ए, इंट बी); या शून्य योग (इंट, इंट); या स्वतः योग (इंट, इंट)-> शून्य;// सी + + केवल फ़ंक्शन प्रोटोटाइप में फ़ंक्शन हस्ताक्षर, फ़ंक्शन का नाम, वापसी प्रकार और अभिगम विनिर्देशक शामिल हैं। इस मामले में फलन का नाम "सम" है। फलन हस्ताक्षर मापदंडों की संख्या और उनके प्रकार को परिभाषित करता है। वापसी का प्रकार "शून्य" है। इसका मतलब है कि फ़ंक्शन कोई मूल्य वापस नहीं करेगा। ध्यान दें कि पहले उदाहरण में पैरामीटर के नाम वैकल्पिक हैं। उपयोग सी के शुरुआती संस्करणों में, यदि कोई फ़ंक्शन पहले घोषित नहीं किया गया था और इसका नाम एक अभिव्यक्ति के बाद एक बाएं कोष्ठक में आया था, तो इसे निहित रूप से एक फ़ंक्शन के रूप में घोषित किया गया था जो एक इंट देता है और इसके तर्कों के बारे में कुछ भी नहीं माना गया था। इस मामले में संकलक तर्कों की संख्या और प्रकार (ओं) की संकलन-समय वैधता जाँच करने में सक्षम नहीं होगा। सी99 मानक के लिए प्रोटोटाइप के उपयोग की आवश्यकता होती है। चार मायफंक्शंस (int a);/* फंक्शन प्रोटोटाइप */#include <stdio.h> #include <limits.h> इंट मेन (शून्य) {पुटचर (मायफंक्शंस (-1));/* सही रूप से प्रारूपित कॉल */पुटचर (मायफंक्शंस (1.5));/* कंपाइलर एक चेतावनी उत्पन्न करता है क्योंकि प्रकार बेमेल */पुटचर (मायफंक्शंस ("गलत एर्गटाइप");/* कंपाइलर एक चेतावनी उत्पन्न करेगा */पुटचर (मायफंक्शंस ());/* कंपाइलर बहुत कम तर्क उत्पन्न करेगा */एक = 1; पुटचर (मायफंक्शंस (आईएन) फ़ंक्शन प्रोटोटाइप को शामिल करके, आप संकलक को सूचित करते हैं कि फ़ंक्शन एक पूर्णांक तर्क लेता है और आप संकलक को गलत तरीके से निर्दिष्ट कॉल पकड़ने में सक्षम बनाते हैं। लाइब्रेरी इंटरफेस बनाना हेडर फाइल में फंक्शन प्रोटोटाइप रखकर, कोई भी लाइब्रेरी के लिए इंटरफेस निर्दिष्ट कर सकता है। वर्ग घोषणा सी + + में, कार्य प्रोटोटाइप का उपयोग वर्ग परिभाषाओं में भी किया जाता है। मॉड्यूलर प्रोग्रामिंग प्रोटोकॉल (ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग) एब्स्ट्रैक्ट विधि संदर्भ सबरूटिन्स सी प्रोग्रामिंग भाषा परिवार कंप्यूटर प्रोग्रामिंग भी देखें।