Skip to main content

C  Functions :


Introduction to C Functions

कई बार आपके program में कुछ ऐसे statements हो सकते है जिन्हें आपको compiler से बार बार execute करवाने की आवश्यकता होती है। ऐसी situation में इन statements को बार बार लिखने में बहुत समय लग सकता है। साथ ही इससे program बहुत बड़ा हो जाता है जिससे उसे पढ़ने और समझने में मुश्किल होती है। 
इस situation से बचने के लिए C आपको एक mechanism provide करती है जिसे function कहते है। जिन भी statements को आप program में कई जगह बार बार execute करवाना चाहते है उन्हें एक block में लिखते है और इस block को एक unique नाम देते है।
इसके बाद program में जँहा भी जितनी भी बार इन statements को आप execute करवाना चाहते है तब आप function के उस unique नाम के द्वारा उस function को call करते है। Call करते ही function (block) में लिखे गए सभी statements execute हो जाते है।   
Function का name और parameters (इनके बारे में आप आगे पढ़ेंगे) जब आप लिखते है तो उसे function declaration कहा जाता है। जब आप function में execute होने वाले सभी statements लिखते है तो उसे function definition कहा जाता है। जब आप पूरे program में कँही भी function को use करते है तो उसे function call कहा जाता है।
किसी भी program में functions को use करने की advantages नीचे दी जा रही है।
  1. Functions create करने से programmer का time और computer की memory बचती है। 
  2. एक ही code को आसानी से बार बार use किया जा सकता है। इससे code re-usability बढ़ती है।
  3. Program modules में divide हो जाता है जिससे उसे आसानी से manage और debug किया जा सकता है। 
  4. Program की readability बढ़ती है। 

C language में दो प्रकार के functions होते है।
  • Predefined Functions 
  • User-defined Functions

PREDEFINED FUNCTIONS   

Predefined functions or Built in function वो functions होते है जो C library में पहले से ही provide किये गए है। इन function को पहले से ही declare और define किया गया होता है। बस इन्हें use करने के लिए header files को include करना होता है
उदाहरण के लिए यदि आप अपने program में scanf() और printf() जैसे functions use करना चाहते है तो इसके लिए आप <stdio> header file को अपने program में include करते है। ये दोनों ही predefined functions है।
Predefined functions के कुछ उदाहरण –
  • scanf() 
  • printf()
  • strcpy()
  • void *malloc()
  • int to lower() आदि है।  

USER DEFINED FUNCTIONS  

User defined functions वो function होते है जो programmer (आप) खुद create करते है। Programmer अपनी आवश्यकता के अनुसार कितने भी functions create कर सकता है। ये functions कैसे create किये जाते है और इन्हें कैसे use किया जाता है। 
      

Creating and Using C Functions

C में functions create करना और उन्हें use करना बहुत ही आसान है। इस process के 3 मुख्य steps होते है।
  1. Functions Declaration
  2. Function Definition 
  3. Function Call

FUNCTION DECLARATION

इस part में आप function का नाम, उसका return type और parameters define करते है। Function declaration का general syntax नीचे दिया गया है। 
<return-type> <function-name>(<list-of-parameters>);
  • return-type  –  आपका function execution complete होने पर किस प्रकार की value return करेगा ये आप return type के द्वारा define करते है। यदि आप एक addition का program बना रहे है जो 2 whole numbers को add करता है तो आपका return type int होगा। 
  • function-name  –  ये आपके function का नाम होता है। ये पूरे program में unique होना चाहिए। जब आप function को call करते है तो इस नाम को ही लिखते है। 
  • list-of-parameters  –  ये उन variables की list होती है जो आप function को call करते समय पास करेंगे। जैसे की यदि आप addition का function बना रहे है तो parameters के रूप में आप 2 numbers या 2 variables पास कर सकते है और फिर function के अंदर उनको add करके result show कर सकते है। यह आवश्यक नहीं की आप सभी functions में parameters define करें।   
        
एक बात आपको हमेशा याद रखनी चाहिए की function declaration statement को आप semicolon से terminate करते है। लेकिन function definition के साथ ऐसा नहीं होता है। मान लीजिये की आप addition का function बना रहे है जो दो numbers को add करता है तो उसे आप इस प्रकार declare करते है।
/* A function declaration with two parameters */
int add(int a, int b);  
   

FUNCTION DEFINITION  

इस part को function body भी कहा जाता है। इसमें आप वो statements लिखते है जिन्हें आप execute करवाना चाहते है।
<return-type> <function-name>(<list-of-parameters>)
{
      statement 1;
      statement 2;
       .
       .
      statement N; 
  
}
   
Function definition में return-type, function-name और list-of-parameters उसी प्रकार होते है जैसे की function declaration में होते है। इनके बाद में curly brackets के block में वो statements लिखे जाते है जो आप execute करवाना चाहते है।
यदि आप addition के function की बात करे तो उसकी definition आप इस प्रकार लिख सकते है।
/* Definition of add function */
int add(int a, int b)
{
    /* Statements to be executed when add function is called */
    int c;
    c = a+b;
   
    return c;
    
}
    

FUNCTION CALL

Program में जब भी आप function को use करना चाहते है तो उसे call करते है। 
<function-name>(<arguments-list>); 
argument-list –  arguments वो real values होती है जो आप functions को call करते समय पास करते है। ये values function definition में parameters को assign होती है। इसके बाद इन values पर processing होती है और result return किया जाता है।
Addition के function को call करते समय कोई 2 values पास करेंगे जैसे की 2 और 7, इनकी जगह variables भी pass किये जा सकते है जिनमें values store की गयी है।
ये values parameter variables a और b को assign हो जाएँगी और function के अंदर इन variables पर ही processing होती है। ऐसे functions जिनमें parameters defined किये गए है और यदि आप function call करते समय arguments पास नहीं करते है तो program में error आती है।  
  
Addition के function को आप इस प्रकार call कर सकते है।
/* Calling add function with arguments 2 and 7*/
add(2,7); 
C language में functions को 2 प्रकार से call किया जा सकता है।
  • Call by Value – इस तरीके में argument के रूप में values और variables पास किये जाते है। 
  • Call by Reference – इस तरीके में argument के रूप में variables का reference पास किया जाता है।  

CALL BY VALUE 

जब आप function call करते समय argument के रूप में कोई value पास करते है तो वह parameter variables में copy हो जाती है और इसके बाद उन variables पर operations perform किये जाते है।
इसी प्रकार जब आप function को call करते समय कोई variable पास करते है तो असल में वह variable function में नहीं pass किया जाता है बल्कि उस variable की value parameter variable में copy की जाती है और उसके बाद उस parameter variable पर operations perform किये जाते है। 
यदि ऊपर दिए गए addition के function को call करते समय दो integer variables x और y pass किये जाएँ तो ऐसा करने पर उन दोनों variables की value parameter variables a और b में copy हो जायेगी और उन पर addition perform करके result return किया जाएगा। 
इस तरह के function call को call by value कहा जाता है। इसमें असल argument variables की value change नहीं होती है और जो भी operation होता है वह parameter variables पर ही perform होता है।
#include<stdio.h>
int add(int a, int b);
int main()
{
   int result;
   int x=5;
   int y=4;
   printf(“This addition is performed using function call by valuen”);
   /* Calling add function by value */
   result = add(x,y);
   printf(“n Result is : %d”,result);
   printf(“nn Value of a is %d and value of b is %d”,x,y);
}
/* Below function takes values from variables
as arguments and performs operations on them */
int add(int a, int b)
{
    int c;
    c=a+b;
    return c;
}
This addition is performed using function call by value
Result is 9
Value a is 5 and value of b is 4

CALL BY REFERENCE 

किसी function को call करते समय असल variables pass करने की बजाय उनका address भी पास किया जा सकता है। ऐसा करने पर उन variables का address parameter variables में copy होगा और parameter variable memory में असल argument variables को ही point करेंगे। 
इस तरह के function call को call by reference कहा जाता है। इस तरह के function call में असल argument variables का address pass किया जाता है। ऐसा करने से function के अंदर यदि parameter variables की values में changes आते है तो उससे असल argument variables की values में भी changes आते है। यानी parameters में change आने पर arguments भी change हो जाते है। 
इस तरह के function call में arguments को address of operator (&) के साथ pass किया जाता है। यह operator argument का address parameter variables को pass करता है। इसके अलावा function के declaration और definition में parameters को value at (*) operator के साथ define किया जाता है।
#include<stdio.h>
/* Function declaration with value at operator */
int add(int *s);
int main()
{
    int s=2;
    printf(“Call by Reference Demon”);
    /*  Function call with variable reference */
    add(&s);
    printf(“Sum is %dn”,s);
}
/* Function definition with value at operator */
int add(int *s)
{
     *s = *s+2;
     return 0;
}
Call by Reference Demo
Sum is 4

Example of C Functions

#include<stdio.h>

/* Function declaration */
int add(int a, int b);
int main()
{
   int result;
    printf(“This is  addition program using function!n”);
    /* Function call */
    result = add(2,7); 
    printf(“Result is : %d”, result);
 }

/* Function definition */
int add(int a, int b)
{
     int c;
     c = a + b;
    
     return c;
}       
This is addition program using function!
Result is : 9 

Comments

Popular posts from this blog

Java Inheritance Introduction to Java Inheritance  Inheritance का ऐसा Machanisam है जिसमे एक old class से new class create किया जाता हे इस के द्वारा old class की properties को new class में प्रयोग किया जाता हे old class की properties को new class में प्रयोग करने के लिए old class की inherit करना होता है| और class को inherit करने के लिए derivation public, private and protected का प्रयोग किया जाता है|  inheritance में old class को base class या parent class or super class कहा जाता है, जिस class की property ली जाती है| और नई class को child class या derive class या sub class कहा जाता है, जिस class के द्वारा property ली जाती है| ऐसा करने के लिए जो class methods को access करना चाहती है उसे दूसरी class की sub class बनना होगा। Sub class बनने के लिए आपकी class को उस दूसरी class को extend करना होगा। इसे ही inheritance कहते है।  Inheritance से आप एक ही code को बार बार लिखने की उलझन से बच जाते है। Inheritance की इस खूबी को re-usability कहते है। यान...
Java Applets  Introduction to Java Applets  Applet एक java program होता है जो browser में run होता है। ये एक ऐसा प्रोग्राम होता है जो HTML के साथ काम कर सकता है। इसे HTML code में ही include कर लिया जाता है। Java program की file और HTML program की files अलग अलग होती है। HTML में java program को load करने के लिए आप <applet> tag यूज़ करते है। जब कोई भी यूज़र इस HTML पेज को browser पर देखता है तो HTML के साथ java program भी load हो जाता है। लेकिन इसके लिए आपको applet (java program) को और HTML file को एक ही server पर save करना पड़ता है।  Applet ऐसा java program होता है जो Applet class को extend करता है। Applet program को .class extension से save किया जाता है। जब कोई यूज़र browser में applet को देखता है तो applet का code उस user की machine में download हो जाता है। पहले applet का code user की machine में download होता है फिर applet browser में रन होता है। इसलिए आप कह सकते है की applets client side applications होती है।Applets को run होने के लिए...
Introduction to C Arrays  मान लीजिये आप एक ऐसा प्रोग्राम बना रहे है जो employees का नाम computer में store करता है। अब मान लीजिये आपकी company में 200 employees है। आप इन 200 employees के नाम किस तरह से store करेंगे। यदि आप सोच रहे है की आप 200 variables create करेंगे तो ये एक बहुत ही complex approach होगी।  इसमें आपको program बनाने में बहुत समय लग जायेगा और program भी हद से ज्यादा बड़ा हो जायेगा। ये आपके time और computer memory space दोनों का wastage है। और साथ ही आप इतने सारे variables के नाम सोच भी नहीं सकते है और यदि सोच भी लेंगे तो program में यूज़ करने के लिए उन्हें याद तो definitely नहीं रख सकते है।   मेरे पास आपके लिए इससे भी better approach है और उस approach को C language में array कहते है। Array similar type की values का collection होता है। Similar type से यँहा मेरा मतलब एक ही तरह के data type जैसे की int, float, char आदि की values से है।   C आपको arrays के द्वारा ऐसी facility provide करती है की...