Functions in C Programming in Hindi

इस tutorial में हम समझेंगे की C programming में functions क्या होते हैं और C programs में functions को use क्यों करना चाहिए.

इसके बाद सीखेंगे की कैसे आप C programming में function definition और function calling कर सकते हैं.


C Programming में Function क्या है?

किसी बड़े program पर काम करते वक्त बहुत बार ऐसा होता है की उस program में कुछ tasks का कुछ lines का code एक से ज्यादा बार repeat हो रहा होता है.

इस repetition की वजह से हमारे program code की length फालतू में बहुत ज्यादा बढ़ जाती है और इसकी वजह से program की readability, performance और maintenance पर बहुत ज्यादा बुरा असर पड़ता है.

इस problem से बचने के लिए C programming में functions का concept दिया गया है. कुछ programming languages में functions को methods भी कहा जाता है.

जब भी हम किसी complex program पर काम करते हैं तब हम उस program के कुछ statements को task के basis पर sub programs में divide कर देते हैं जिन्हें हम function कहते हैं.

Function में हम किसी specific task के लिए किये गये statements (code) को एक name के साथ एक block (body) में group कर देते हैं.

दूसरे शब्दों में कहूँ तो function एक ऐसा block of code होता है जिसकी help से हम अपने program में किसी specific task को performs करते हैं.

Functions की वजह से हमें same task के लिए किए गये code को अपने program में repeat नहीं करना पड़ता यानी की function की help से अपने program में code को reuse कर पाते हैं.

C programming में दो तरह के functions होते हैं Library functions और User defined functions.

Functions के इन दोनों types के भी कई types होते हैं जिनके बारे में हम नीचे एक-एक करके detailed में बात करेंगे.


Library Functions in C Programming

जैसा की आप पढ़ चुके हो की C programming में input और output के लिए हम printf(), scanf() जैसे functions का use करते हैं.

अगर मान लीजिये ये functions ना होते तो आपको हर बार input/output और ऐसे ही और भी common tasks के लिए शायद हजारों lines का code खुद से लिखना होता.

Beginner programmers के लिए ये काम बहुत ज्यादा difficult और time wasting होगा. इसलिए C programming language के inventors ने library functions का support दिया है.

Standard library functions को हम built-in functions भी कहते हैं और ये सभी library functions अपने use और category के अनुसार अलग-अलग header files में होते हैं.

इसलिए किसी भी library function का use करने के लिए आपको उस header file को अपने program के top में include करना ही होता है जिसमें उन function की declaration दी गयी है.

C programming के ये built-in functions programmers के काम को बहुत आसान कर देते हैं क्योंकि बहुत से common tasks के लिए programmers को खुद से code नहीं करना पड़ता. हमें सिर्फ उन common काम के लिए built-in functions को call करना होता है.


User Defined Functions in C Programming

C programs में statements repetition को रोकने के लिए हम यानी C language users खुद से उन repeated statements को functions के अंदर group कर देते हैं और इन्हीं functions को हम user defined functions कहते हैं.

जैसा की हमने ऊपर पढ़ा की built-in functions का body code हमने नहीं लिखा होता है. इसलिए हमें उनकी internally process के बारे में जानकारी नहीं होती है.

हम उन्हें अपने programs में use करने के लिए सिर्फ call करते हैं यानी हमारा built-in functions की internally work process पर कोई control नहीं होता है.

अब क्योंकि user defined functions हम (programmers) खुद से define करते हैं इसलिए इन functions की calling के साथ-साथ work process पर भी हमारा पूरा control होता है.

C language में user defined functions बनाने के लिए आपको नीचे दिए गए दो steps (definition, calling) को follow करना होता है. आइये इन steps को थोड़ा detailed में समझते हैं.


Function Definition

Function definition के syntax के अनुसार functions 4 types के होते हैं और इन चारों types के बारे में आप इस tutorial के खत्म होने तक अच्छे से समझ जाएंगे.

  1. function without return type without parameters
  2. function without return type with parameters
  3. function with return type without parameters
  4. function with return type with parameters

Function definition से आप बताते हैं की function क्या काम करेगा और कैसे करेगा.

Function definition syntax:

return_type function_name( parameters )
{

     //function body statements

}

आइये अब function definition में use होने वाली सभी terms के बारे में detailed में समझते हैं.

Function Return Type

जैसा की आप अभी तक पढ़ चुके हो की हम किसी specific repeated task (काम) को करने के लिए function define करते हैं.

कभी-कभी हम function के अंदर काम करने के बाद function से एक value result एक तौर पर return करना चाहते हैं और उसके लिए हम return statement का use करते हैं.

Return statement की help से हम function एक अंदर से int, float, char, void इत्यादि type की value वहां भेज (return) सकते हैं जहाँ से function को call किया गया है.

कोई भी function एक बार में सिर्फ एक ही value return कर सकता है यानी आप return statement की help से 1 से ज्यादा value return नहीं कर सकते हो.

अगर किसी function का return type void है तो इसका मतलब ये हुआ की वो किसी भी तरह (data type) की value return नहीं करेगा.

जैसे ही function में return statement मिलता है function terminates (समाप्त) हो जाता है और program का control वापस उस जगह लौट जाता है जहाँ से उस function को call किया गया था.

return statement syntax:

return (expression / variable / value);

जब आप return statement के साथ कोई expression जैसे (2+5*2) लिखेंगे तो उसका जो result होगा जैसे की 12 वो value return होगी.

इसके अलावा अगर आप return statement के साथ कोई variable लिखते हैं तब भी variable नहीं बल्कि उसकी value return होगी.

अगर किसी function का return type void तब भी आप function के अंदर return statement का use कर सकते हो लेकिन फिर आप उसके साथ कोई expression या value नहीं लिख सकते हो.

return;

ऐसा हम तब करते जब हमें किसी specific condition के true होने पर सिर्फ function को terminates करके program के control को वापस वहां भेजना चाहते हो जहाँ से function call किया गया हो.

Function Name

जब भी आप किसी function को name दें तो हमेशा उसके work (use) के हिसाब से meaningful name दें यानी उसके name से ही एक अंदाजा लग जाए की ये function क्या काम करेगा.

Function name देते वक्त C identifier naming rules को जरूर follow करें और एक C program में सभी function को अलग-अलग (unique) name assign करें.

Function Arguments and Parameters

जैसे हमने ऊपर पढ़ा की function value return कर भी सकता है और नहीं भी यानी हम अपने काम के हिसाब से function declare और define करते हैं.

बहुत बार ऐसा होता है की function calling के समय हम कुछ values (arguments) को function को send करते हैं.

उन arguments को store करने के लिए हम function के parenthesis ( ) के अंदर variable declare करते हैं जिन्हें हम parameters कहते हैं.

अगर हम function calling के समय कोई arguments नहीं send करना चाहते हैं तो हम function में parameters set नहीं करते हैं.

function with parameters syntax:

return_type function_name( data_type var1, data_type var2, ... )
{
     // function body statements
}

function without parameters syntax:

return_type function_name( )
{
     // function body statements
}

Function Body

function के parenthesis ( ) बाद जो curly braces { } हैं उन्हें हम function body कहते हैं. इन्हीं curly braces के अंदर functions के सभी statements और return statement लिखते हैं.

अभी तक इस tutorial में हमने function definition के सभी terms (return type, name, parameter and body) के बारे में पढ़ लिया. अब हम बात करेंगे function calling की बारे में.


Function Calling

अपने C programs में सिर्फ function define करने से कुछ नहीं होगा यानी जब तक आप function को use करने के लिए function calling नहीं करते तब तक वक्त functions का कोई फायदा नहीं है.

अपने अपने program में किसी भी function को कितनी बार में call कर सकते हो. जैसे ही आप अपने program में किसी function को call करते हो program का control function calling वाली जगह से function definition पर transfer हो जाता है.

इसके बाद जब वो function पूरी तरह से execute (run) हो जाएगा तब दोबारा से program का control function definition से function calling वाली जगह जाएगा और उसके बाद जो statements हैं उन्हें execute करेगा. 

C Programming में calling 2 तरह से की जाती है पहली call by value और दूसरी call by reference

इस tutorial में सिर्फ function call by value की गयी है. Function call by reference के लिए पहले हमें C pointers की जानकारी होना जरूरी है इसलिए इसके बारे में हम बाद में सीखेंगे.

Function calling example:

function calling flow in C

Output:

Hello I'm main function
Hello I'm myfun function
Hello I'm back to main function

आपने ऊपर जो example program देखा वो without return type और without parameters वाला function था. 

function calling या मैं कहूँ functions को अच्छे से समझने के लिए हम नीचे चारों types के functions को एक-एक करके example के साथ समझेंगे.

Function without Return value without Parameters

#include <stdio.h>

void sum()
{
    int num1,num2,sum;

    printf("Enter First Number : ");
    scanf("%d",&num1);
    printf("Enter Second Number : ");
    scanf("%d",&num2);

    sum=num1+num2;

    printf("Total : %d",sum);
}

int main()
{
    sum();

    return 0;
}

Output:

Enter First Number : 15
Enter Second Number : 5
Total : 20

Function without Return value with Parameters

#include <stdio.h>

void sum(int a, int b)
{
    int sum;

    sum=a+b;

    printf("Total : %d",sum);
}

int main()
{
    int num1,num2;

    printf("Enter First Number : ");
    scanf("%d",&num1);
    printf("Enter Second Number : ");
    scanf("%d",&num2);

    sum(num1, num2);

    return 0;
}

Output:

Enter First Number : 15
Enter Second Number : 5
Total : 20

Program Explanation:

ऊपर program में जब हमने function sum को call किया है तब हमने 2 arguments (num1, num2) भी send किये है.

first argument num1 की value first parameter a में store होगी और second argument num2 की value second parameter a में store होगी.


Function with Return value without Parameters

#include <stdio.h>

int sum()
{
    int num1,num2,sum;

    printf("Enter First Number : ");
    scanf("%d",&num1);
    printf("Enter Second Number : ");
    scanf("%d",&num2);

    sum=num1+num2;

    return sum;
}

int main()
{
    int ans;

    ans=sum();

    printf("Total : %d",ans);

    return 0;
}

Output:

Enter First Number : 15
Enter Second Number : 5
Total : 20

Program Explanation:

ऊपर program में जब function अपना काम पूरा कर लेगा तब int data type की value return करेगा इसलिए हमने function calling वाली जगह पर variable ans का use किया है.

यानी जब function variable sum की value return करेगा तो उस value को assignment operator ( = ) की help से variable ans को assign कर दिया जाएगा.


Function with Return value with Parameters

#include <stdio.h>

int sum(int a, int b)
{
    int sum;

    sum=a+b;

    return sum;
}

int main()
{
    int num1,num2,ans;

    printf("Enter First Number : ");
    scanf("%d",&num1);
    printf("Enter Second Number : ");
    scanf("%d",&num2);

    ans=sum(num1, num2);

    printf("Total : %d",ans);

    return 0;
}

Output:

Enter First Number : 15
Enter Second Number : 5
Total : 20

What’s Next: इस tutorial में हमने C Functions के बारे में पढ़ा. Next tutorial में हम C programming में Recursion का use करना सीखेंगे.