प्रौद्योगिकी साझेदारी

[C Language] "Callback Function" का विस्तृत विश्लेषण।

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Callback function (Callback Function) C भाषायां अतीव महत्त्वपूर्णा सामान्यतया च प्रयुक्ता प्रोग्रामिंगप्रौद्योगिकी अस्ति, विशेषतः यदा इवेण्ट्-ड्राइव् अथवा एसिन्क्रोनस् प्रोग्रामिंग् इत्यनेन सह व्यवहारः भवति C भाषायां callback function इत्यस्य विस्तृतं विश्लेषणं निम्नलिखितम् अस्ति ।

1. कॉलबैक् फंक्शन् किम् ?

कॉलबैक् फंक्शन् फंक्शन् पॉइंटर् इत्यस्य माध्यमेन आह्वितं फंक्शन् निर्दिशति । एतत् एकं फंक्शन् अन्यस्मिन् फंक्शन् प्रति पैरामीटर् रूपेण पारयितुं, विशिष्टघटना घटते तदा निष्पादयितुं च शक्नोति । एषा प्रौद्योगिकी प्रोग्रामिंग् अधिकं लचीलं करोति तथा च गतिशीलरूपेण निर्णयं कर्तुं शक्नोति यत् कदा कस्य फंक्शन् आह्वानं कर्तव्यम् इति ।

2. कॉलबैक फंक्शन् इत्यस्य उद्देश्यम्

सामान्यतया निम्नलिखितस्थितौ कॉलबैक् कार्याणि उपयुज्यन्ते ।

  • घटना निबन्धनम्: यदा विशिष्टा घटना भवति तदा प्रणाली घटनां नियन्त्रयितुं पञ्जीकृतं कॉलबैक् कार्यं आह्वयति ।
  • अतुल्यकालिक कार्यसमाप्तिसूचना: यदा अतुल्यकालिकं कार्यं सम्पन्नं भवति तदा मुख्यकार्यक्रमं callback function इत्यस्य माध्यमेन सूचितं भवति ।
  • टाइमर् तथा सिग्नल हैंडलिंग: यदा समयनिर्धारकस्य अवधिः समाप्तः भवति अथवा संकेतः भवति तदा पञ्जीकृतं कॉलबैक् कार्यं आह्वयति ।
  • आँकडा संरचना संचालन: यथा, क्रमाङ्कन-एल्गोरिदम्-मध्ये तुलना-कार्यं कालबैक-कार्यस्य माध्यमेन क्रमाङ्कन-नियमान् गतिशीलरूपेण निर्धारयितुं शक्नोति ।

3. callback function इत्यस्य मूलभूतं कार्यान्वयनम्

C भाषायां callback functions इत्यस्य कार्यान्वयनार्थं प्रायः निम्नलिखितपदार्थाः सन्ति ।

3.1 callback function type परिभाषयन्तु

प्रथमं, callback function इत्यस्य प्रकारं परिभाषयन्तु, यत् प्रायः function pointer इत्यस्य माध्यमेन कार्यान्वितं भवति:

// 定义回调函数类型
typedef void (*CallbackType)(int);
  • 1
  • 2

अत्रCallbackTypeएकः फंक्शन् सूचकप्रकारः अस्ति यः एकं फंक्शन् दर्शयति यस्य रिटर्न् वैल्यू नास्ति तथा च a स्वीकुर्वतिintप्रकारमापदण्डैः सह कार्याणि ।

3.2 कॉलबैक फंक्शन् रजिस्ट्रेशन

मुख्यप्रोग्रामे विशिष्टं कार्यं कॉलबैक् फंक्शन् रूपेण तस्य फंक्शन् प्रति पञ्जीकरणं कुर्वन्तु यस्य आह्वानं करणीयम् अस्ति:

// 函数接受回调函数作为参数
void performOperation(int data, CallbackType callback) {
    // 执行操作
    printf("Performing operation with data: %dn", data);
    
    // 调用回调函数
    callback(data);
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

अस्मिन् उदाहरणे .performOperationफंक्शन् पूर्णाङ्कं स्वीकुर्वतिdataतथा एकं कॉलबैक् फंक्शन्callback पैरामीटर् इति रूपेण। एकं निश्चितं कार्यं कृत्वा, परिणामान् नियन्त्रयितुं पञ्जीकृतं कॉलबैक् कार्यं आह्वयति ।

३.३ कॉलबैक् फंक्शन्स् इत्यस्य उपयोगः

आह्वयन्performOperation, callback function इत्यस्य रूपेण उपयुक्तं फंक्शन् पारयन्तु:

// 实现一个回调函数
void callbackFunction(int result) {
    printf("Callback function called with result: %dn", result);
}

int main() {
    // 注册回调函数
    performOperation(42, callbackFunction);
    
    return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

अस्मिन् उदाहरणे .mainकार्येcallbackFunction कॉलबैक् फंक्शन् इत्यस्य रूपेण पञ्जीकृतम् ।कदाperformOperationयदा सः स्वस्य कार्यं सम्पन्नं करोति तदा सः आह्वयतिcallbackFunctionतथा परिणामं पारयन्ति।

4. उदाहरणानि तथा आउटपुट्

अधः सम्पूर्णः नमूनासङ्केतः आउटपुट् च अस्ति ।

#include <stdio.h>

// 定义回调函数类型
typedef void (*CallbackType)(int);

// 函数接受回调函数作为参数
void performOperation(int data, CallbackType callback) {
    // 执行操作
    printf("Performing operation with data: %dn", data);
    
    // 调用回调函数
    callback(data);
}

// 实现一个回调函数
void callbackFunction(int result) {
    printf("Callback function called with result: %dn", result);
}

int main() {
    // 注册回调函数
    performOperation(42, callbackFunction);
    
    return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25

आउटपुट् परिणामः : १.

Performing operation with data: 42
Callback function called with result: 42
  • 1
  • 2

5. सावधानताः

  • कॉलबैक् फंक्शन्स् पञ्जीकरणे उपयोगे च भवद्भिः फंक्शन् हस्ताक्षरस्य स्थिरतायाः विषये ध्यानं दातव्यं, अर्थात् कॉलबैक् फंक्शन् इत्यस्य पैरामीटर्स्, रिटर्न् वैल्यू प्रकाराः च कॉल् फंक्शन् इत्यस्य आवश्यकताभिः सह सङ्गताः भवेयुः
  • गतिशीलरूपेण आवंटितस्मृतेः अथवा बहु-धागायुक्तस्य वातावरणस्य उपयोगं कुर्वन्, सूत्रसुरक्षायाः स्मृतिप्रबन्धनस्य च विषयेषु अवगताः भवन्तु ।

उपर्युक्तविश्लेषणस्य माध्यमेन आशासे यत् भवान् C भाषायां callback function प्रौद्योगिकीम् अधिकतया अवगन्तुं प्रयोक्तुं च शक्नोति!

6. सन्दर्भाः

  1. केर्निघन, बी डब्ल्यू, एवं रिची, डी एम (1988). द सी प्रोग्रामिंग लैंग्वेज (द्वितीय संस्करण)। प्रेंटिस हॉल।
  2. केरिस्क, माइकल। Linux Programming Interface: Linux तथा UNIX System Programming Handbook इति ग्रन्थः . नो स्टार्च प्रेस, 2010.
  3. ISO/IEC। (1999) इति । आईएसओ / आईईसी 9899:1999. प्रोग्रामिंग भाषाएँ – सी.
  4. ISO/IEC। (२०२४) इति । ISO/IEC DIS 9899. प्रोग्रामिंग भाषाएँ – सी.
  5. हार्बिसन, एस पी, & स्टील, जी एल (2002). ग: एक सन्दर्भ पुस्तिका (5th ed.). प्रेंटिस हॉल।
  6. प्रता, स्टीफन्। सी प्राइमर प्लस . एडिसन-वेस्ले प्रोफेशनल, 2013.

7. उपसंहारः

  1. अस्य खण्डस्य विषयवस्तु पूर्णतया परिचयः कृतः अस्ति यत् अस्य लेखस्य माध्यमेन सर्वेषां कृते C भाषायां callback function इत्यस्य गहनतया अवगमनं अवगमनं च भविष्यति।
  2. भवतः पठनस्य समर्थनस्य च धन्यवादः यदि भवान् मन्यते यत् एषः लेखः भवतः कृते सहायकः अस्ति तर्हि कृपया भवतः समर्थने कंजूसः मा कुरुत ।लाइक एवं कमेंट , यत् अस्माकं कृते अतीव महत्त्वपूर्णम् अस्ति।पुनः धन्यवादः सर्वेभ्यःअनुसरणं समर्थनं च कुर्वन्तु