0% found this document useful (0 votes)
4 views

FUNC1

Uploaded by

Mrs.Minu Meera M
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views

FUNC1

Uploaded by

Mrs.Minu Meera M
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 20

C Programming

Lecture 7
Functions
Structured Programming
 Keep the flow of control in a
program as simple as
possible.
 Use top-down design.
• Keep decomposing (also known as
factoring) a problem into
smaller problems until you have
a collection of small problems
that you can easily solve.
Top-Down Design Using Functions
 C programs normally consist
of a collection of user-
defined functions.
• Each function solves one of the
small problems obtained using
top-down design.
• Functions call or invoke other
functions as needed.
Function Definitions,
Prototypes, and Calls
#include <stdio.h>
void prn_message(void); /* fct prototype */
/* tells the compiler that this */
/* function takes no arguments */
int main(void) /* and returns no value. */
{
prn_message(); /* fct invocation */
}
void prn_message(void) /* fct definition */
{
printf(“A message for you: “);
printf(“Have a nice day!\n”);
}
Form of a Function Definition
type function_name ( parameter type list )
{
declarations
statements
}
Some Terminology
Header: Everything before the first brace.
Body: Everything between the braces.
Type: Type of the value returned by the function.
Parameter List: A list of identifiers that provide information
for use within the body of the function.
Also called formal parameters.
The return Statement
 When a return statement is
executed, program control is
immediately passed back to the
calling environment.
• If an expression follows the keyword
return, the value of the expression
is returned to the calling
environment as well.
return;
return expression;
If There is No return
 Control is passed back to the
calling environment when the
closing brace of the body is
encountered.
• Known as “falling of the end.”
Exit Status and return Verus exit( )
 In main() either
return expr;
or
exit(expr);
will return an integer value to the
operating system.
 In functions other than main(),
the effects of return and exit
are different.
return expr Versus exit(expr)
 return expr returns the value
of expr to the calling
function.
 exit(expr) always causes the
program to terminate and
returns an exit status to the
operating system. The value
in expr is the exit status.
Demo Program – Using a Function
to Calculate the Minimum of 2 Values

#include <stdio.h>
int min(int a, int b);

int main(void)
{
int j, k, m;
printf(“Input two integers: “);
scanf(“%d%d”, &j, &k);
m = min(j, k);
printf(“\nOf the two values %d and %d, “
“the minimum is %d.\n\n”, j, k, m);
return 0;
}

int min(int a, int b)


{
if (a < b)
return a;
else
return b;
}
Function Prototypes
 A function prototype tells the
compiler:
• The number and type of arguments that
are to be passed to the function.
• The type of the value that is to be
returned by the function.
 General Form of a Function
Prototype
type function_name( parameter type list);
Examples of Function Prototypes
double sqrt(double);

 The parameter list is typically a


comma-separated list of types.
Identifiers are optional.
void f(char c, int i);
is equivalent to
void f(char, int);
The Keyword void
 void is used if:
• A function takes no arguments.
• If no value is returned by the
function.
Function Invocation
 As we have seen, a function is
invoked (or called) by writing
its name and an appropriate
list of arguments within
parentheses.
• The arguments must match in
number and type the parameters
in the parameter list of the
function definition.
Call-by-Value
 In C, all arguments are
passed call-by-value.
• This means that each argument is
evaluated, and its value is used
in place of the corresponding
formal parameter in the called
function.
Demonstration Program for Call-by-Value
#include <stdio.h>
int compute_sum(int n);
int main(void)
{
int n = 3, sum;
printf(“%d\n”, n); /* 3 is printed */
sum = compute_sum(n);
printf(“%d\n”, n); /* 3 is printed */
printf(“%d\n”, sum);
return 0;
}
int compute_sum(int n)
{
int sum = 0;
for (; n > 0; --n) /* in main(), n is unchanged */
sum += n;
printf(“%d\n”, n); /* 0 is printed */
return sum;
}
Standard Style for Function Definition Order
#include <stdio.h>
#include <stdlib.h>
list of function prototypes
int main(void)
{
...
}
int max(int a, int b)
{
...
}
int min(int a, int b)
{
...
}
void prn_random_numbers(int k)
{
...
}
“Alternate Style for Function Definition Order
#include <stdio.h>
#include <stdlib.h>

int max(int a, int b)


{
...
}
We will use the
int min(int a, int b)
{
...
standard style.
}
void prn_random_numbers(int k)
{
...
}
int main(void)
{
...
}
Common Programming Errors
 If f() is a function and v is
a variable, then the function
call f(v) cannot change the
value in the variable v.
• A common error for beginners is
assuming the the value in v can
be changed by a function call
such as f(v).
Style
 Avoid naming functions you write
with the same name as system
functions.
• Example: read, write, print
 Minimize the number of return
statements in a given function.
 Use names for parameters that
clearly identify their purpose.

You might also like