Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> सी प्रोग्रामिंग

C में कॉलबैक फंक्शन्स


**कॉलबैक फंक्शन** वह फंक्शन है जिसका पॉइंटर किसी अन्य फंक्शन को आर्गुमेंट के रूप में पास किया जाता है, ताकि बाद में उसे कॉल किया जा सके।

उदाहरण

#include <stdio.h>

void my_function() {
    printf("This is a normal function.\n");
}

void my_callback_function(void (*ptr)()) {
    printf("This is callback function.\n");
    (*ptr)();  // कॉलबैक कॉल
}

int main() {
    void (*ptr)() = &my_function;  // फंक्शन पॉइंटर
    my_callback_function(ptr);
    return 0;
}

आउटपुट

This is callback function.
This is a normal function.

व्यावहारिक उपयोग: जेनेरिक सॉर्टिंग

#include <stdlib.h>
#include <stdio.h>

int cmp_int(const void *a, const void *b) {
    return (*(int*)a - *(int*)b);
}

int main() {
    int arr[] = {5, 2, 8, 1, 9};
    qsort(arr, 5, sizeof(int), cmp_int);  // cmp_int कॉलबैक है
    for (int i = 0; i < 5; i++) printf("%d ", arr[i]);
    return 0;
}

कॉलबैक पैटर्न्स

महत्वपूर्ण बिंदु

  • फंक्शन पॉइंटर टाइप सिग्नेचर मैच करना चाहिए।
  • C++ में std::function, लैम्ब्डाज, फंक्टर्स अधिक लचीले हैं।
  • कॉलबैक में void* यूजर डेटा पास करना सामान्य पैटर्न है।
  1. JavaScript कॉलबैक फंक्शन: परिभाषा और उदाहरण JavaScript कॉलबैक फंक्शन: परिभाषा और उदाहरण

    JavaScript में, चूंकि फंक्शन ऑब्जेक्ट होते हैं, इसलिए हम उन्हें दूसरे फंक्शन में पैरामीटर के रूप में पास कर सकते हैं। इन फंक्शन को फिर दूसरे फंक्शन के अंदर कॉल किया जा सकता है, और पास किए गए फंक्शन को कॉलबैक फंक्शन कहा जाता है। उदाहरण { add(4, 5, multiplyResultByTwo); }); </scrip

  1. जावास्क्रिप्ट में फ़ंक्शन को कॉलबैक के रूप में पास करना जावास्क्रिप्ट में फ़ंक्शन को कॉलबैक के रूप में पास करना

    जावास्क्रिप्ट में फ़ंक्शन को कॉलबैक के रूप में पास करने का कोड निम्नलिखित है - उदाहरण <!DOCTYPE html> <html lang=en> <head> <meta charset=UTF-8 /> <meta name=viewport content=width=device-width, initial-scale=1.0 /> <title>Document</title> <style> &n

  1. C में fillpoly() फ़ंक्शन C में fillpoly() फ़ंक्शन

    अवधारणा अब हेडर फ़ाइल graphics.h में fillpoly() फ़ंक्शन होता है जिसे त्रिकोण, आयत, पंचभुज, षट्कोण आदि जैसे बहुभुज को बनाने और भरने के लिए लागू किया जाता है। इसलिए इस फ़ंक्शन को drawpoly() के समान तर्कों की आवश्यकता होती है। सिंटैक्स void fillpoly( int number, int *polypoints ); इस मामले में, number

© कॉपीराइट https://in.wsxdn.com सर्वाधिकार सुरक्षित
पैटर्नउदाहरण
इवेंट हैंडलिंगGUI टूलकिट्स (GTK, Qt), सिग्नल हैंडलर्स
कस्टम कम्पेरेटरqsort, bsearch, std::sort
असिंक्रोनस ऑपरेशन्सI/O कम्पलीशन, टाइमर्स
प्लगइन/एक्सटेंशनरनटाइम पर फंक्शन रजिस्ट्रेशन