“हेल्लो दोस्तों! इस पोस्ट में हम ‘C प्रोग्रामिंग’ में उपयोग होने वाले function, function के प्रकार और Recursion function के बारे में उदाहरण सहित पढ़ेंगे। तो आइए, इसे समझते हैं।”
फ़ंक्शंस क्या हैं? (What are Functions?)
फ़ंक्शन एक कोड का ब्लॉक होता है जो किसी विशेष कार्य को करने के लिए बनाया गया होता है। जब भी हमें एक ही कोड को बार-बार उपयोग करना होता है, तब हम उस कोड को एक फ़ंक्शन में डाल सकते हैं और इसे बार-बार उपयोग कर सकते हैं। इस तरह से प्रोग्रामिंग में दुहराव को कम किया जा सकता है।
उदाहरण: मान लीजिए हमें दो संख्याओं का जोड़ करना है तो हम एक फ़ंक्शन बना सकते हैं जो जोड़ कर के दे।
1. Function Declaration and Definition
फ़ंक्शन को उपयोग करने से पहले Declaration करना होता है ताकि Compiler को इसके बारे में जानकारी हो। इसे तीन हिस्सों में बांटा जाता है:
- Declaration – फ़ंक्शन के नाम और प्रकार को बताना।
- Definition – फ़ंक्शन के कार्य को परिभाषित करना।
- Calling – फ़ंक्शन को प्रोग्राम में कहीं भी कॉल करना।
उदाहरण:
#include <stdio.h>
// फ़ंक्शन डिक्लेरेशन
int add(int, int);
int main() {
int m = add(15, 9); // function call
printf("Addition is: %d\n", m);
return 0;
}
// फ़ंक्शन डेफिनिशन
int add(int a, int b) {
return a + b;
}
2. फ़ंक्शन के प्रकार (Types of Functions)
C में कई प्रकार के फ़ंक्शन होते हैं, जैसे:
- Predefined Functions: यह वह function हैं जो C के साथ पहले से ही आते हैं। जैसे
printf()
,scanf()
आदि। - User-defined Functions: यह वह function हैं जिन्हें programmer स्वयं बनाता है जैसे कि ऊपर का उदाहरण।
3. Recursion (Recursive Functions)
Recursive फ़ंक्शन वह फ़ंक्शन होते हैं जो स्वयं को कॉल करते हैं। इन्हें हम अक्सर तब उपयोग करते हैं जब हमें कोई कार्य कई बार खुद के आधार पर करना हो। उदाहरण के लिए, फ़ैक्टोरियल निकालना।
उदाहरण:
#include <stdio.h>
// फ़ैक्टोरियल के लिए Recursive फ़ंक्शन
int factorial(int x1) {
if (x1 == 1)
return 1;
else
return x1 * factorial(xa - 1);
}
int main() {
int f1 = 5;
printf("Factorial - %d", factorial(f1);
return 0;
}
4. Call by Value (Same Value) और Call by Reference (Value Address)
Call by Value और Call by Reference (Address) दोनों अलग-अलग तरीके हैं जिनसे हम किसी function में आर्ग्युमेंट्स पास करते हैं:
- Call by Value (Same Value) : इसमें Value की Same Copy function को भेजी जाती है, इसलिए असली Value पर कोई effect नहीं पड़ता।
उदाहरण:
#include <stdio.h>
void addTen(int num) {
num = num + 10;
printf("Inside function: %d\n", num);
}
int main() {
int a = 5;
addTen(a);
printf("Outside function: %d\n", a);
return 0;
}
- Call by Reference: इसमें Value का Address भेजा जाता है, जिससे असली Value बदल जाती है।
उदाहरण:
#include <stdio.h>
void addTen(int *num) {
*num = *num + 10;
printf("Inside function: %d\n", *num);
}
int main() {
int a = 5;
addTen(&a);
printf("Outside function: %d\n", a);
return 0;
}
इस प्रकार हमने C Programming में Function के मुख्य बिंदुओं को समझ लिया है। यदि Function या recursive functions से Related कोई सवाल आपके मन में है, तो आप Comment Box में पूछ सकते हैं।
People also ask
फंक्शन और रिकर्शन (recursion) में क्या अंतर है?
फंक्शन और रिकर्शन (recursion) दोनों ही C प्रोग्रामिंग में महत्वपूर्ण कॉन्सेप्ट्स हैं, लेकिन इन दोनों में कुछ महत्वपूर्ण अंतर हैं। यहाँ हिंदी में दोनों के बारे में विस्तार से जानकारी दी गई है:
फंक्शन (Function)
- Definition: फंक्शन एक कोड ब्लॉक है जिसे एक विशेष कार्य को करने के लिए डिजाइन किया गया है। यह कोड को सुव्यवस्थित (organized) और पुनः प्रयोग करने योग्य (reusable) बनाता है।
- Calling: फंक्शन को एक बार कॉल किया जा सकता है और यह एक निश्चित आउटपुट देता है।
Example
int add(int a, int b) {
return a + b;
}
इस उदाहरण में, add
नाम का फंक्शन है जो दो इनपुट को जोड़कर उनका आउटपुट देता है।
फायदा:
- कोड को छोटे-छोटे हिस्सों में बाँटकर पढ़ने और समझने में आसानी होती है।
- कोड को दोहराव से बचाया जा सकता है और बार-बार इस्तेमाल किया जा सकता है।
रिकर्शन (Recursion)
- Def: Recursion एक technique है जिसमें एक function खुद को call करता है। इसमें base case और Recursive Case) दोनों का होना आवश्यक है।
- Calling: इसमें function खुद को तब तक कॉल करता है जब तक कि कोई base case पूरा नहीं होता।
उदाहरण (Factorial Calculation करने के लिए):
int factorial(int n) {
if (n == 0) {
return 1; // बेस केस
} else {
return n * factorial(n - 1);
}
}
इस उदाहरण में, factorial
फंक्शन खुद को तब तक कॉल करता है जब तक n
की वैल्यू 0 नहीं हो जाती।
- फायदा:
- कुछ समस्याओं को हल करने में कोड को छोटा और सरल बनाता है।
- विशेषतः जैसे Tree) या Graph जैसी समस्याओं में उपयोगी होता है।
- नुकसान:
- अधिक memory और समय की आवश्यकता होती है, खासकर जब Best Case सही से परिभाषित नहीं हो।
मुख्य अंतर:
बिंदु | फंक्शन | रिकर्शन |
---|---|---|
परिभाषा | कोड ब्लॉक जो एक विशेष कार्य को करता है | वह function जो खुद को कॉल करता है |
प्रकार | सामान्य फंक्शन | खुद को कॉल करने वाला फंक्शन |
मेमोरी | memory उपयोग limit होता है | अधिक memory उपयोग कर सकता है |
समाप्ति | function एक बार कॉल करके समाप्त होता है | तब तक चलता है जब तक बेस केस तक नहीं पहुँचता |
निष्कर्ष: function और रिकर्शन दोनों के अपने-अपने फायदे और उपयोग हैं। फंक्शन सामान्यतया कोड को व्यवस्थित रखने के लिए उपयोग किए जाते हैं, जबकि रिकर्शन का उपयोग तब होता है जब समस्याएँ खुद में छोटे संस्करणों में टूटती हैं।