C-function: Difference between revisions
Appearance
Content deleted Content added
No edit summary Tag: Reverted |
Pinethicket (talk | contribs) m Reverted edits by 114.143.95.203 (talk) to last version by Dcirovic Tag: Reverted |
||
Line 1: | Line 1: | ||
In mathematics, '''c-function''' may refer to: |
|||
A function is a module or block of program code which deals with a particular task. Making functions is a way of isolating one block of code from other independent blocks of code. |
|||
*[[Smooth function]] |
|||
*[[Harish-Chandra's c-function]] in the theory of Lie groups |
|||
*[[List of C functions]] for the programming language C |
|||
{{Mathdab}} |
|||
{{Short pages monitor}}<!-- This long comment was added to the page to prevent it from being listed on Special:Shortpages. It and the accompanying monitoring template were generated via Template:Long comment. Please do not remove the monitor template without removing the comment as well.--> |
|||
Functions serve two purposes. |
|||
They allow a programmer to say: `this piece of code does a specific job which stands by itself and should not be mixed up with anyting else', |
|||
Second they make a block of code reusable since a function can be reused in many different contexts without repeating parts of the program text. |
|||
A function can take a number of parameters, do required processing and then return a value. There may be a function which does not return any value. |
|||
You already have seen couple of built-in functions like printf(); Similar way you can define your own functions in C language. |
|||
Consider the following chunk of code |
|||
int total = 10; |
|||
printf("Hello World"); |
|||
total = total + l; |
|||
To turn it into a function you simply wrap the code in a pair of curly brackets to convert it into a single compound statement and write the name that you want to give it in front of the brackets: |
|||
Demo() |
|||
{ |
|||
int total = 10; |
|||
printf("Hello World"); |
|||
total = total + l; |
|||
} |
|||
curved brackets after the function's name are required. You can pass one or more paramenters to a function as follows: |
|||
Demo( int par1, int par2) |
|||
{ |
|||
int total = 10; |
|||
printf("Hello World"); |
|||
total = total + l; |
|||
} |
|||
By default function does not return anything. But you can make a function to return any value as follows: |
|||
int Demo( int par1, int par2) |
|||
{ |
|||
int total = 10; |
|||
printf("Hello World"); |
|||
total = total + l; |
|||
return total; |
|||
} |
|||
A return keyword is used to return a value and datatype of the returned value is specified before the name of function. In this case function returns total which is int type. If a function does not return a value then void keyword can be used as return value. |
|||
Once you have defined your function you can use it within a program: |
|||
main() |
|||
{ |
|||
Demo(); |
|||
} |
|||
Functions and Variables: |
|||
Each function behaves the same way as C language standard function main(). So a function will have its own local variables defined. In the above example total variable is local to the function Demo. |
|||
A global variable can be accessed in any function in similar way it is accessed in main() function. |
|||
Declaration and Definition |
|||
When a function is defined at any place in the program then it is called function definition. At the time of definition of a function actual logic is implemented with-in the function. |
|||
A function declaration does not have any body and they just have their interfaces. |
|||
A function declaration is usually declared at the top of a C source file, or in a separate header file. |
|||
A function declaration is sometime called function prototype or function signature. For the above Demo() function which returns an integer, and takes two parameters a function declaration will be as follows: |
|||
int Demo( int par1, int par2); |
|||
Passing Parameters to a Function |
|||
There are two ways to pass parameters to a function: |
|||
Pass by Value: mechanism is used when you don't want to change the value of passed paramters. When parameters are passed by value then functions in C create copies of the passed in variables and do required processing on these copied variables. |
|||
Pass by Reference mechanism is used when you want a function to do the changes in passed parameters and reflect those changes back to the calling function. In this case only addresses of the variables are passed to a function so that function can work directly over the addresses. |
|||
Here are two programs to understand the difference: First example is for Pass by value: |
|||
#include <stdio.h> |
|||
/* function declaration goes here.*/ |
|||
void swap( int p1, int p2 ); |
|||
int main() |
|||
{ |
|||
int a = 10; |
|||
int b = 20; |
|||
printf("Before: Value of a = %d and value of b = %d\n", a, b ); |
|||
swap( a, b ); |
|||
printf("After: Value of a = %d and value of b = %d\n", a, b ); |
|||
} |
|||
void swap( int p1, int p2 ) |
|||
{ |
|||
int t; |
|||
t = p2; |
|||
p2 = p1; |
|||
p1 = t; |
|||
printf("Value of a (p1) = %d and value of b(p2) = %d\n", p1, p2 ); |
|||
} |
|||
Here is the result produced by the above example. Here the values of a and b remain unchanged before calling swap function and after calling swap function. |
|||
Before: Value of a = 10 and value of b = 20 |
|||
Value of a (p1) = 20 and value of b(p2) = 10 |
|||
After: Value of a = 10 and value of b = 20 |
|||
Following is the example which demonstrate the concept of pass by reference |
|||
#include <stdio.h> |
|||
/* function declaration goes here.*/ |
|||
void swap( int *p1, int *p2 ); |
|||
int main() |
|||
{ |
|||
int a = 10; |
|||
int b = 20; |
|||
printf("Before: Value of a = %d and value of b = %d\n", a, b ); |
|||
swap( &a, &b ); |
|||
printf("After: Value of a = %d and value of b = %d\n", a, b ); |
|||
} |
|||
void swap( int *p1, int *p2 ) |
|||
{ |
|||
int t; |
|||
t = *p2; |
|||
*p2 = *p1; |
|||
*p1 = t; |
|||
printf("Value of a (p1) = %d and value of b(p2) = %d\n", *p1, *p2 ); |
|||
} |
|||
today date 20/3/2016 |
|||
name=sahil shete |
Revision as of 13:36, 20 March 2016
In mathematics, c-function may refer to:
- Smooth function
- Harish-Chandra's c-function in the theory of Lie groups
- List of C functions for the programming language C