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

IT11a - Programming Notes

Functions are used in C programming to break programs into smaller problems. Functions are defined with a return type, name, and parameters. Functions can call other functions. Parameters pass values to functions, but the original variables are not changed. Functions make code more organized and reusable.

Uploaded by

Aizel Almonte
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
86 views

IT11a - Programming Notes

Functions are used in C programming to break programs into smaller problems. Functions are defined with a return type, name, and parameters. Functions can call other functions. Parameters pass values to functions, but the original variables are not changed. Functions make code more organized and reusable.

Uploaded by

Aizel Almonte
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 4

C Programming

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);

sum = compute_sum(n);

printf(“%d\n”, n);

printf(“%d\n”, sum);

return 0;

int compute_sum(int n)

int sum = 0;

/* 3 is printed */

/* 3 is printed */

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)

. ..

int min(int a, int b)

. ..

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