Pointer to functions in hindi
सी प्रोग्राम में फ़ंक्शन के लिए पॉइंटर एक प्रकार का पॉइंटर मेमोरी एड्रेस लोकेशन वेरिएबल होता है. जो सी प्रोग्राम में डिक्लेअर किसी प्रोग्राम वेरिएबल के बजाय फ़ंक्शन आर्गुमेंट/पैरामीटर का मेमोरी एड्रेस स्टोर करता है। फंक्शन टू पॉइंटर उन प्रोग्रामिंग कंडीशन में विशेष रूप से उपयोगी है, जहाँ आप मौजूदा फ़ंक्शन प्रोग्राम में किसी आर्गुमेंट या पैरामीटर को अन्य फ़ंक्शन में कॉल बाय रेफ़्रेन्स के द्वारा आर्गुमेंट के रूप में पास करना चाहते हैं. जब आप सी प्रोग्राम में फ़ंक्शन से फ़ंक्शन रिटर्न करना चाहते हैं. सी लैंग्वेज में फंक्शन बड़े प्रोग्राम कोड को छोटे छोटे मॉडुल में डिवाइड कर बड़े प्रोग्राम कोड को रन करता है. फंक्शन में पॉइंटर के उपयोग से फंक्शन प्रोग्राम कालिंग में पॉइंटर फंक्शन कालिंग को फ़ास्ट और एरर फ्री कर देता है.
Declaring function pointers in C.
सी प्रोग्राम में फ़ंक्शन पॉइंटर डिक्लेअर करने के लिए फंक्शन टू पॉइंटर सिंटैक्स में फंक्शन रिटर्न टाइप, फंक्शन आर्गुमेंट/पैरामीटर टाइप और पॉइंटर नाम को उपयुक्त ब्रैकेट में डिक्लेअर किया जाता है।
// Example – below function pointer to declare function with two integer and their returns type as int data type
int (*testPtr)(int, int);
Assigning a function to a pointer in C.
सी प्रोग्राम में प्रोग्रामर फ़ंक्शन के नाम का उपयोग ब्रैकेट के बिना पॉइंटर को फ़ंक्शन में असाइन कर डिक्लेअर कर सकता हैं।
int total(int p, int q) {
return p + q;
}
int (*testPtr)(int, int) = total; // This code assigns ‘testPtr’ to ‘total’ function
Calling function through pointer in C.
आप सी प्रोग्राम में पॉइंटर वेरिएबल के ज़रिए डिक्लेअर फ़ंक्शन आर्गुमेंट/पैरामीटर को वैसे ही कॉल कर सकते हैं. जैसे आप सीधे नार्मल फ़ंक्शन को सी प्रोग्राम में कॉल करते हैं।
int addition = testPtr(1, 2); // Calls ‘addition(1, 2)’, outputs the result – 3
Function pointer as function parameter in C.
आप सी प्रोग्राम में फ़ंक्शन पॉइंटर्स को अन्य फ़ंक्शन में आर्गुमेंट पैरामीटर के रूप में पास कर सकते हैं. जिससे आप फंक्शन फ्लेक्सिबल फ़ंक्शन कॉलबैक या ऑपरेशन को ऑपरेट कर सकते है।
void test(int (*total)(int, int), int p, int q) {
int output = total(p, q);
printf(“\n the output is – %d”, output);
}
test(total, 1, 2); // This calls ‘add(1, 2)’ using the ‘total’ pointer
Returning pointers from functions in C.
सी में फ़ंक्शन फ़ंक्शन पॉइंटर्स आर्ग्यूमेंट्स को लौटा सकते हैं. जो फंक्शन प्रोग्राम में पॉइंटर टू फंक्शन बनाने या अलग-अलग फंक्शन ऑपरेशन के लिए उपयोग हो सकते है.
int minus(int p, int q) {
return p – q;
}
Array of function pointers in C.
आप सी प्रोग्राम में फ़ंक्शन की लिस्ट का प्रतिनिधित्व करने के लिए फ़ंक्शन पॉइंटर्स की ऐरे लिस्ट बना सकते हैं. ऐरे एलिमेंट को लूप में रन कर यूजर डिफाइन फंक्शन क्रिएट कर पॉइंटर वेरिएबल का उपयोग किया जा सकता है.
int mul(int p, int q) {
return p * q;
}
int (*process[5])(int, int) = { multiply };
for (int p = 0; p < 5; p++) {
printf(“\n %d”, process[p](3, 2)); // This calls each function in the array
}