User Define Function : Classification in hindi यूजर डिफाइन फंक्शन के प्रकार c कंप्यूटर भाषा में

By  
यूजर डिफाइन फंक्शन के प्रकार c कंप्यूटर भाषा में User Define Function : Classification in hindi in c computer language :-
c user define function नाम के article मे function का structure,function के basic उदाहरण को पढ़ा |अब इस article मे हम function का,
arguments और return value के आधार classification को पढेगे |
arguments
और return statement के आधार पर function को char प्रकार मे बाटा गया है |
1.No arguments or No Return value
2. Arguments but no Return value
3. Argument or Return value
4. No argument but Return
value
No
arguments or No Return value:
जब कोई
function मे कोई arguments नहीं होते है ,कोई भी data calling function से called
function मे pass नहीं होता ,तब यह function इस category मे आता है |इसमें कोई value
return नहीं होती ,मतलब कोई भी data called function और calling function मे
transfer नहीं होतां है |
इस
function मे कोई data return return नहीं होता है , इसलिए इसे किसी expression
मे use नहीं कर सकते है |इसे independent function की तरह कार्य कर सकते है |
 उदहारण के लिए :
#include<stdio.h>
#include<conio.h>
Void line();
Void sub();
Void main()
{

 

line();

 

Sub();
line();
getch();
}
Void main()
{

 

int a,,b,c;

 

printf(“Enter
data”);
scanf((“%d
%d”, &a &b);
If(a<b)
{

 

c=b-a;

 

Printf(“Subtraction of %d or
%d is %d”,b,a,c);
Return();
}
Else
{
C=a-b;
Printf(“Subtraction of %d or
%d is %d”,a,b,c);
Return();
}
}
Void line()
{

 

int i;

 

For(i=0;i<25;i++)
{

 

printf(“*”);

 

}
}
इस उदहारण
मे दोनों user define function मे कोई arguments pass नहीं हो रहा |sub() function
मे data, terminal से डायरेक्ट मिल रहे है और line () function मे कोई input जा ही
नहीं रहा है |और दोनों ही function मे कोई data  return नहीं हो रहा है |इसलिए दोनों function का
type void है |
आउटपुट होगा
:
Enter
data 23 34
***************************
Subtraction of 34 or 23 is 11
***************************
इस
function type मे return statement की जरूरत ही नहीं होती है इसमें कोम्प्लिएर का
control आटोमेटिक ही यूजर define function से main() function मे transfer हो जाता
है |

2.Arguments
but no Return values

इसके
पहले उदाहरण मे हमने देखा की main() function का data input मे कोई रोल नहीं था |लेकिन
जब किसी प्रोग्राम मे calling function (main() in most case) यूजर से data लेकर ,called
function (user define function) मे pass करता है और called function कोई value
return नहीं होती है तब ये function इस category मे आते है |
 
इसमें
दो parameter होते है (i) Formal Parameter (ii) Actual parameter|
Formal
Parameter और Actual parameter के number ,size और data type match होने चाहिए |अगर
Actual parameter का सख्या formal parameter से ज्यादा होती है तब extra actual
parameter discarded हो जाता है | 
Actual parameter की सख्या formal parameter से
कम होती तब extra formal parameter garbage value ले लेते  है |कोई error message नहीं आता है |
जब किसी
function को call किया जाता है तब actual parameter की copy formal parameter मे pass
होती है |और function मे हुई calculation का actual parameter पर कोई effect नहीं
पड़ता है |
 
उदहारण
के लिए :
#include<stdio.h>
#include<conio.h>
Void line();
Void sub(int ,int );
Void main()
{
int a, b;
printf(“Enter
data”);
scanf((“%d
%d”, &a &b);

 

line();

 

Sub(a,b);
line();
getch();
}
Void sub(int e,int f)
{
int c;
If(e<f)
{

 

c=f-e;

 

Printf(“Subtraction of %d or
%d is %d”,
f,e,c);
Return();
}
Else
{
c=e-f;
Printf(“Subtraction of %d or
%d is %d”,
e,f,c);
Return();
}
}
Void line()
{

 

int i;

 

For(i=0;i<25;i++)
{

 

printf(“*”);

 

}
}
इस
उदहारण मे , variable a और b actual parameter है |और variable e और  f formal parameter है |जब sub() function call
होता है ,तब variable a और b की value की copy variable e और f मे copy हो जाती है
|function मे कैलकुलेशन के लिए use होती है | printf() function already sub() function
मे होने के कारण कोई भी value return नहीं होती है |
आउटपुट
होगा :
Enter
data 23 34
***************************
Subtraction of 34 or 23 is 11

3.Arguments
with return vaule

हमने
इससे पहले के types मे हमने देखा की called function से कोई भी value calling function
मे return नहीं होती है |और printf() function से user define function मे आउटपुट
को print करा दिया जाता है |लेकिन हमे इस आउटपुट की जरुरत होती tab हम की क्या करे
|
इसके लिए
इस category का use किया जाता है |इसमें function मे arguments भी pass होते है और
value return होगी |
इस तरह
के function को किसी भी expression मे use कर सकते है|
उदाहरण के
लिए:
#include<stdio.h>
#include<conio.h>
Void line();
int sub(int ,int );
Void main()
{
int a, b, c;
printf(“Enter
data”);
scanf((“%d
%d”, &a &b);

 

line();

 

c=Sub(a,b);
line();
printf(“subtraction
is=%d”,c);
line();
getch();
}
Void sub (int e,int f)
{
int g;
g=e-f;
return(g);
}
Void line()
{

 

int i;

 

For(i=0;i<25;i++)
{

 

printf(“*”);

 

}
}
आउटपुट
होगा :
Enter
data 23 34
***************************
Subtraction of 34 or 23 is 11
***************************

4 No
arguments but return a value

इस तरह
का function बहुत ही विशेष ocassion पर use होता है |इस function मे कोई arguments
pass नहीं होता है और इसमें data return होता है |
इसका उदहारण है :getchar()
function जिसमे कोई arguments pass नहीं होता है और data type integer की value को
return करता है जो की character को बताता है |
उदहारण
के लिए :
#include<stdio.h>
#incude<conio.h>
Int sub(int ,int)
Void main()
{

 

int c;

 

c=sub();
printf(“Subtraction = %d”,c);
getch();
}
Int sub()
{

 

int a,b,sub;

 

Printf(“Enter data ”);
Scanf(“%d %d”,&a,&b)
Sub=b-a;
Return(sub);
}
 इस उदहारण मे कोई arguments pass नहीं हो रहा है
यकीन sub की वुए return हो रही है |
आउटपुट होगा
:
Enter
data 23 34
Subtraction = 11