यहां हम देखेंगे कि C में फ़ंक्शन प्रोटोटाइप का उपयोग क्यों करना चाहिए। फ़ंक्शन प्रोटोटाइप्स का उपयोग कंपाइलर को फ़ंक्शन पैरामीटर के आर्गुमेंट्स की संख्या और आवश्यक डेटा प्रकारों के बारे में बताने के लिए किया जाता है, यह फ़ंक्शन के रिटर्न टाइप के बारे में भी बताता है। इस जानकारी से, कंपाइलर कॉल करने से पहले फ़ंक्शन सिग्नेचर्स की क्रॉस-चेकिंग करता है। यदि फ़ंक्शन प्रोटोटाइप्स मेंशन नहीं किए जाते हैं, तो प्रोग्राम कुछ चेतावनियों के साथ कंपाइल हो सकता है, और कभी-कभी अजीब आउटपुट उत्पन्न कर सकता है।
यदि किसी फ़ंक्शन को कहीं कॉल किया जाता है, लेकिन उसका बॉडी अभी तक परिभाषित नहीं है, यानी वर्तमान लाइन के बाद परिभाषित है, तो यह समस्याएं उत्पन्न कर सकता है। कंपाइलर को पता नहीं चलता कि फ़ंक्शन क्या है और उसका सिग्नेचर क्या है। उस स्थिति में, हमें फ़ंक्शन प्रोटोटाइप्स की आवश्यकता होती है। यदि फ़ंक्शन पहले से परिभाषित है तो हमें प्रोटोटाइप्स की आवश्यकता नहीं होती।
उदाहरण कोड (बिना प्रोटोटाइप)
#include <stdio.h>
int main() {
function(50);
return 0;
}
void function(int x) {
printf("x का मान है: %d", x);
}
आउटपुट
x का मान है: 50
यह आउटपुट दिखाता है, लेकिन यह नीचे जैसी कुछ चेतावनी दिखा रहा है:
[चेतावनी] 'function' के लिए विरोधाभासी प्रकार [नोट] 'function' की पिछली अंतर्निहित घोषणा यहां थी
अब फ़ंक्शन प्रोटोटाइप्स का उपयोग करके, यह बिना किसी समस्या के निष्पादित होता है।
उदाहरण कोड (प्रोटोटाइप के साथ)
#include <stdio.h>
void function(int); // प्रोटोटाइप
int main() {
function(50);
return 0;
}
void function(int x) {
printf("x का मान है: %d", x);
}
आउटपुट
x का मान है: 50