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

C भाषा में फ़ंक्शन रिटर्न (Function Return) क्या है?

फ़ंक्शन क्या है?

एक फ़ंक्शन एक स्व-निहित ब्लॉक है जो एक विशिष्ट कार्य करता है।

फ़ंक्शन के लाभ

  • पुन: उपयोगिता (Reusability)
  • प्रोग्राम लंबाई कम करता है
  • त्रुटि स्थानांतरण आसान
  • टॉप-डाउन मॉड्यूलर प्रोग्रामिंग की सुविधा

रिटर्न मान

  • गणनाओं में, हम आमतौर पर एक फ़ंक्शन से मान वापस करने की अपेक्षा करते हैं
  • यह मान int, float, char या कुछ भी हो सकता है
  • फ़ंक्शन का डिफ़ॉल्ट रिटर्न टाइप int है

उदाहरण 1: सरल फ़ंक्शन


#include <stdio.h>

void myFunc();  // प्रोटोटाइप

int main() {
    myFunc();
    return 0;
}

void myFunc() {
    printf("Hello\n");
}

उदाहरण 2: रिटर्न मान के साथ फ़ंक्शन


int total() {
    int a = 10, b = 20, c;
    c = a + b;
    return c;  // c का मान लौटाता है (30)
}

आउटपुट


30

दो चरणों के बजाय:


c = a + b;
return c;

एकल चरण में लिख सकते हैं:


return a + b;

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

  • यदि आप फ़ंक्शन में मान वापस करना भूल जाते हैं, तो अधिकांश C कंपाइलर चेतावनी देते हैं
  • चेतावनी प्रोग्राम निष्पादन नहीं रोकती, लेकिन त्रुटि रोकती है

main() फ़ंक्शन का रिटर्न


int main() {
    // ...
    return 0;  // सफल समाप्ति
}

एक पूर्णांक प्रकार के लिए डिफ़ॉल्ट रिटर्न मान 0 है। यदि आप main() में return 0 या कोई अन्य मान नहीं डालते हैं, तो 0 स्वचालित रूप से वापस कर दिया जाता है (C99 मानक)।

फ़ंक्शन से वापसी

एक फ़ंक्शन return स्टेटमेंट के माध्यम से एकल मान लौटाता है।

  • यदि फ़ंक्शन के अंदर चरों में परिवर्तन किए जाते हैं, तो वे उस फ़ंक्शन के लिए स्थानीय होते हैं। कॉलिंग फ़ंक्शन के चर कॉल किए गए फ़ंक्शन की क्रियाओं से प्रभावित नहीं होते
  • कॉलिंग फ़ंक्शन कॉल किए गए फ़ंक्शन द्वारा लौटाए गए मान को अनदेखा करना चुन सकता है। उदाहरण के लिए, printf और scanf रिटर्न मान आमतौर पर अनदेखे किए जाते हैं
  • फ़ंक्शन द्वारा लौटाया गया मान अधिक जटिल अभिव्यक्ति में उपयोग किया जा सकता है, या किसी चर को असाइन किया जा सकता है

व्यावहारिक उदाहरण

1. एकाधिक मान वापस करना (पॉइंटर्स के माध्यम से)


void divide(int a, int b, int *quotient, int *remainder) {
    *quotient = a / b;
    *remainder = a % b;
}

int main() {
    int q, r;
    divide(17, 5, &q, &r);
    printf("भागफल: %d, शेषफल: %d\n", q, r);  // 3, 2
}

2. संरचना वापस करना


struct Point {
    int x, y;
};

struct Point midpoint(struct Point p1, struct Point p2) {
    struct Point mid;
    mid.x = (p1.x + p2.x) / 2;
    mid.y = (p1.y + p2.y) / 2;
    return mid;  // संरचना वापस
}

3. सरणी वापस करना (पॉइंटर के माध्यम से)


// सरणी सीधे वापस नहीं की जा सकती, पॉइंटर वापस करें
int* createArray(int n, int value) {
    int *arr = malloc(n * sizeof(int));
    for (int i = 0; i < n; i++) arr[i] = value;
    return arr;  // कॉलर को free() करना होगा
}

4. रिटर्न मान की जांच


FILE *fp = fopen("file.txt", "r");
if (fp == NULL) {  // रिटर्न मान जांचें!
    perror("फ़ाइल खोलने में विफल");
    return 1;
}

सर्वोत्तम अभ्यास

  • हमेशा फ़ंक्शन प्रोटोटाइप में रिटर्न टाइप घोषित करें
  • सफलता/विफलता इंगित करने के लिए सार्थक मान लौटाएं
  • महत्वपूर्ण फ़ंक्शन कॉल्स के रिटर्न मान जांचें
  • void रिटर्न टाइप का उपयोग करें जब कोई मान वापस न करना हो
  • बड़े ऑब्जेक्ट्स के लिए, पॉइंटर/संरचना द्वारा वापस करने पर विचार करें
  1. C भाषा में strncpy() फंक्शन क्या है? C भाषा में strncpy() फंक्शन क्या है?

    C लाइब्रेरी फंक्शन char *strncpy(char *dest, const char *src, size_t n) स्रोत स्ट्रिंग (src) से गंतव्य स्ट्रिंग (dest) में n कैरेक्टर्स तक कॉपी करता है। यदि src की लंबाई n से कम है, तो dest का शेष भाग नल बाइट्स से भरा जाता है। घोषणा char stringname [size]; आरंभीकरण सिंगल कैरेक्टर: char string[10]

  1. C भाषा में strcmp() फंक्शन क्या है? C भाषा में strcmp() फंक्शन क्या है?

    C लाइब्रेरी फंक्शन int strcmp(const char *str1, const char *str2) str1 द्वारा इंगित स्ट्रिंग की तुलना str2 द्वारा इंगित स्ट्रिंग से करता है। कैरेक्टर्स का ऐरे स्ट्रिंग कहलाता है। घोषणा ऐरे के लिए घोषणा निम्नलिखित है: char stringname[size]; उदाहरण: char string[50]; 50 कैरेक्टर्स लंबाई की स्ट्रिंग

  1. C भाषा में strcpy() फंक्शन क्या है? C भाषा में strcpy() फंक्शन क्या है?

    C लाइब्रेरी फंक्शन char *strcpy(char *dest, const char *src) src द्वारा इंगित स्ट्रिंग को dest में कॉपी करता है। कैरेक्टर्स का ऐरे स्ट्रिंग कहलाता है। घोषणा ऐरे के लिए घोषणा निम्नलिखित है: char stringname[size]; उदाहरण: char string[50]; 50 कैरेक्टर्स लंबाई की स्ट्रिंग आरंभीकरण सिंगल कैरेक्टर कॉ