Follow Techotopia on Twitter

On-line Guides
All Guides
eBook Store
iOS / Android
Linux for Beginners
Office Productivity
Linux Installation
Linux Security
Linux Utilities
Linux Virtualization
Linux Kernel
System/Network Admin
Programming
Scripting Languages
Development Tools
Web Development
GUI Toolkits/Desktop
Databases
Mail Systems
openSolaris
Eclipse Documentation
Techotopia.com
Virtuatopia.com
Answertopia.com

How To Guides
Virtualization
General System Admin
Linux Security
Linux Filesystems
Web Servers
Graphics & Desktop
PC Hardware
Windows
Problem Solutions
Privacy Policy

  




 

 

The GNU C Programming Tutorial - Functions with values

Node:Functions with values, Next:, Previous:Function examples, Up:Functions



Functions with values

In mathematics, a function takes one or more values and calculates, or returns, another value. In C, some functions return values and others do not; whether a function you write does or does not will depend on what you want the function to do. For example, a function that calculates a value should probably return that value, while a function that merely prints something out may not need to.

The add_two_numbers function above did not return a value. We will now examine a function that does.

Here is an example of calling a function that returns a value:

bill = calculate_bill (data1, data2, data3);

When this statement is executed, control is passed to the function calculate_bill, that function executes, and then it returns control and some value to the original statement. The value returned is assigned to bill, and the program continues.

In C, returning a value from a function is a simple matter. Consider the function calculate_bill as it might be written in a program that contains the statement above:

int calculate_bill (int a, int b, int c)
{
  int total;

  total = a + b + c;
  return total;
}

As soon as the return statement is met, calculate_bill stops executing and returns the value total.

A function that returns a value must have a return statement. Forgetting it can ruin a program. For instance if calculate_bill had read as follows, then the variable bill would have had no meaningful value assigned to it, and you might have received a warning from the compiler as well. (The word void below indicates that the function does not return a value. In ANSI C, you must place it before the name of any such function.)

void calculate_bill (int a, int b, int c)
{
  int total;

  total = a + b + c;
}

On the other hand, you do not need to actually use a value when a function returns one. For example, the C input/output functions printf and scanf return values, but the values are rarely used. See output, for more information on these functions.

If we use the first version of the calculate_bill function (the one that contains the line return total;), the value of the function can simply be discarded. (Of course, the resulting program is not very useful, since it never displays a value to the user!)

int main()
{
  calculate_bill (1, 2, 3);
  exit (0);
}

 
 
  Published under free license. Design by Interspire