USER DEFINED FUNCTIONS
A FUNCTION IS A BLOCK OF CODE THAT PERFORMS A SPECIFIC TASK. C ALLOW YOU TO DEFINE FUNCTIONS ACCORDING TO YOUR NEED.THESE FUNCTION ARE KNOWN AS USER DEFINED FUNCTION. MAIN FUNCTION IS AN EXAMPLE OF USER DEFINED FUNCTION.MODULAR PROGRAMMING
MODULAR PROGRAMMING IS A STRATEGY APPLIED TO THE DESIGN AND DEVELOPMENT OF SOFTWARE SYSTEM. IT IS DEFINED AS ORGANIZING A LARGE PROGRAM INTO SMALL, INDEPENDENT PROGRAM SEGMENTS CALLED MODULES. MODULES THAT ARE SEPARATELY NAMED AND INDIVIDUALLY CALLABLE PROGRAM UNITS. IT IS BASICALLY A " DIVIDE AND CONQUER " APPROACH TO PROBLEM SOLVING. MODULES ARE IDENTIFIED AND DESIGNED SUCH THAT THEY CAN BE ORGANIZED INTO A TOP DOWN HIERARCHICAL STRUCTURE.
ELEMENTS OF USER DEFINED FUNCTIONS
IN ORDER TO MAKE USE OF A USER DEFINED FUNCTION, WE NEED TO ESTABLISH THREE ELEMENTS THAT ARE RELATED TO FUNCTION.
- FUNCTION DEFINITION
- FUNCTION CALL
- FUNCTION DECLARATION
FUNCTION DEFINITION
THE FUNCTION DEFINITION IS AN INDEPENDENT PROGRAM MODULE THAT IS SPECIALLY RETURN TO IMPLEMENT THE REQUIREMENTS OF THE FUNCTION.
FUNCTION CALL
FUNCTION DECLARATION
THE PROGRAM THAT CALLS THE FUNCTION IS REFERRED TO AS THE CALLING FUNCTION. THE CALLING FUNCTION SHOULD DECLARE ANY FUNCTION ( LIKE DECLARATION OF VARIABLE ) THAT CAN BE USED LATER IN A PROGRAM. THIS IS KNOWN AS FUNCTION DECLARATION OR FUNCTION PROTOTYPE.
DEFINITION OF FUNCTION
A FUNCTION DEFINITION, ALSO KNOWN AS FUNCTION IMPLEMENTATION INCLUDE THE FOLLOWING ELEMENTS.- FUNCTION NAME
- FUNCTION TYPE
- LIST OF PARAMETERS
- LOCAL VARIABLE DECLARATION
- FUNCTION STATEMENTS
- RETURN STATEMENT
ALL THE SIX ELEMENTS ARE GROUPED INTO TWO
- FUNCTION HEADER ( FUNCTION NAME, FUNCTION TYPE, LIST OF PARAMETERS )
- FUNCTION BODY ( LOCAL VARIABLE DECLARATION, FUNCTION STATEMENT, RETURN STATEMENT )
THE GENERAL FORM IS,
FUNCTION_TYPE FUNCTION_NAME ( PARAMETER LIST )
{
LOCAL VARIABLE DECLARATION;
EXECUTABLE STATEMENT 1;
EXECUTABLE STATEMENT 2;
...................................................
...................................................
...................................................
...................................................
RETURN STATEMENT;
}
FUNCTION HEADER
THE FUNCTION HEADER CONSISTS OF THREE PARTS THE FUNCTION TYPE, THE FUNCTION NAME AND THE FORMAL PARAMETER LIST.
FUNCTION NAME AND TYPE
THE FUNCTION TYPE SPECIFIES THE TYPE OF VALUE (LIKE FLOAT OR DOUBLE)
THAT THE FUNCTION IS EXPECTED TO RETURN TO THE PROGRAM CALLING THE FUNCTION.
THE FUNCTION NAME IS ANY VALID C IDENTIFIER AND IT MUST FOLLOW THE SAME RULES OF FORMATION AS OTHER VARIABLE NAME IN C.
FORMAL PARAMETER LIST
THE PARAMETER LIST DECLARES THE VARIABLES THAT WILL RECEIVE THE DATA SENT BY THE CALLING PROGRAM. THEY SERVE AS INPUT DATA TO THE FUNCTION TO CARRY OUT THE SPECIFIED TASK. SINCE THEY REPRESENT ACTUAL INPUT VALUES, THEY ARE OFTEN REFERRED TO AS FORMAL PARAMETERS. THESE PARAMETERS CAN ALSO BE USED TO SEND VALUES TO THE CALLING PROGRAM. THE PARAMETER ARE ALSO KNOWN AS ARGUMENTS.
EXAMPLE :
DOUBLE POWER ( DOUBLE X, INT N )
{
...................................
...................................
}
FUNCTION BODY
THE FUNCTION BODY CONTAINS THE DECLARATIONS AND STATEMENTS NECESSARY FOR PERFORMING THE REQUIRED TASK. THE BODY ENCLOSED IN BRACES AND IT CONTAINS THREE PARTS,- LOCAL VARIABLE DECLARATION
- FUNCTION STATEMENT
- RETURN TYPE
FUNCTION CALL
A FUNCTION CAN BE CALLED BY SIMPLY USING THE FUNCTION NAME FOLLOWED BY A LIST OF ACTUAL PARAMETER AND ENCLOSED IN PARATHESES
EXAMPLE :
MAIN ( )
{
INT Y;
Y = MUL ( 10, 5 );
PRINTF( " %D " ,Y );
}
EXAMPLE :
MAIN ( )
{
INT Y;
Y = MUL ( 10, 5 );
PRINTF( " %D " ,Y );
}
FUNCTION DECLARATION
LIKE VARIABLES, ALL FUNCTIONS IN A C PROGRAM MUST BE DECLARED BEFORE THEY ARE INVOKED. A FUNCTION DECLARATION ALSO KNOWN AS FUNCTION PROTOTYPE. IT CONSISTS OF FOUR PARTS.- FUNCTION TYPE ( RETURN TYPE )
- FUNCTION NAME
- PARAMETER LIST
- TERMINATING SEMI COLON
THE GENERAL FORM IS,
FUNCTION TYPE FUNCTION NAME ( PARAMETER LIST );
NESTING OF FUNCTIONS
C PERMITS NESTING OF FUNCTIONS FREELY. MAIN CAN CALL FUNCTION 1, WHICH CALLS FUNCTION 2, WHICH CALLS FUNCTION 3 AND SO ON. THERE IS IN PRINCIPLE NO LIMIT AS TO HOW DEEPLY FUNCTIONS CAN BE NESTED.
EXAMPLE :
float ratio ( int x, int y, int z );
int difference ( int x, int y );
main ( )
{
int a, b, c;
scanf ( " %d %d %d ", &a, &b, &c );
printf ( "\n %f ", ratio( a, b, c ) );
}
float ratio( int x, int y, int z )
{
if ( difference ( y, z ) );
return( x / ( y - z ) );
else
return ( 0.0 );
}
int difference ( int p, int q )
{
if ( p != q )
return ( 1 );
else
return ( 0 );
}
RECURSION
{
EXAMPLE :
float ratio ( int x, int y, int z );
int difference ( int x, int y );
main ( )
{
int a, b, c;
scanf ( " %d %d %d ", &a, &b, &c );
printf ( "\n %f ", ratio( a, b, c ) );
}
float ratio( int x, int y, int z )
{
if ( difference ( y, z ) );
return( x / ( y - z ) );
else
return ( 0.0 );
}
int difference ( int p, int q )
{
if ( p != q )
return ( 1 );
else
return ( 0 );
}
RECURSION
WHEN A CALLED FUNCTION IN TURN CALLS ANOTHER FUNCTION A PROCESS OF ' CHAINING ' OCCURS. RECURSION IS A SPECIAL CASE OF THIS PROCESS, WHERE A FUNCTION CALLS ITSELF.
EXAMPLE :
MAIN ( )
{
PRINTF("\N THIS IS AN EXAMPLE OF RECURSION")
MAIN ( );
}
THE OUTPUT IS LIKE THIS
THIS IS AN EXAMPLE OF RECURSION
THIS IS AN EXAMPLE OF RECURSION
THE SCOPE, VISIBILITY AND LIFETIME OF VARIABLES
VARIABLES IN C DIFFER IN BEHAVIOUR FROM THOSE IN MOST OTHER LANGUAGES. IT ALL DEPENDS ON THE ' STORAGE ' CLASS A VARIABLE MAY ASSUME. THE FOLLOWING VARIABLE STORAGE CLASSES ARE MOST RELEVANT TO FUNCTIONS.
- AUTOMATIC VARIABLES
- EXTERNAL VARIABLES
- STATIC VARIABLES
- REGISTER VARIABLES
AUTOMATIC VARIABLES
AUTOMATIC VARIABLES ARE DECLARED INSIDE A FUNCTION IN WHICH THEY ARE TO BE INITIALIZED. THEY ARE CREATED WHEN THE FUNCTION IS CALLED AND DESTROYED AUTOMATICALLY WHEN THE FUNCTION IS EXITED, HENCE THE NAME AUTOMATIC. AUTOMATIC VARIABLES ARE THEREFORE PRIVATE ( OR LOCAL ) TO THE FUNCTION IN WHICH THEY ARE DECLARED.
EXTERNAL VARIABLES
STATIC VARIABLES
THE VALUE OF STATIC VARIABLES PERSISTS UNTIL THE END OF THE PROGRAM. A VARIABLE CAN BE DECLARED STATIC USING THE KEYWORD STATIC.EXAMPLE : STATIC INT X;
REGISTER VARIABLES
A REGISTER ACCESS IS MUCH FASTER THAN A MEMORY ACCESS, KEEPING THE FREQUENTLY ACCESSED VARIABLES ( LOOP CONTROL VARIABLES ) IN THE REGISTER WILL LEAD TO FASTER EXECUTION OF PROGRAMS.EXAMPLE : REGISTER IN COUNT;
CODE MASTER
Comments
Post a Comment