twitter
    Find out what I'm doing, Follow Me :)

Floating Point Functions

Load the program floatsq.c for an example of a function with a floating point type of return.

float z; /* This is a global variable */

main( )
{
int index;
float x,y,sqr(),glsqr();
for (index = 0;index <= 7;index++){
x = index; /* convert int to float */
y = sqr(x); /* square x to a floating point variable */
printf("The square of %d is %10.4f\n",index,y);
}
for (index = 0; index <= 7;index++) {
z = index;
y = glsqr();
printf("The square of %d is %10.4f\n",index,y);
}
}
float sqr(inval) /* square a float, return a float */
float inval;
{
float square;
square = inval * inval;
return(square);
}
float glsqr() /* square a float, return a float */
{
return(z*z);
}



It begins be defining a global floating point variable we will use later. Then in the "main" part of the program, an integer is defined, followed by two floating point variables, and then by two strange looking definitions. The expressions "sqr()" and "glsqr()" look like function calls and they are. This is the proper way in C to define that a function will return a value that is not of the type "int", but of some other type, in this case "float". This tells the compiler that when a value is returned from either of these two functions, it will be of type "float".
Now refer to the function "sqr" near the center of the listing and you will see that the function name is preceded by the name "float". This is an indication to the compiler that this function will return a value of type "float" to any program that calls it. The function is now compatible with the call to it. The line following the function name contains "float inval;", which indicates to the compiler that the variable passed to this function from the calling program will be of type "float".

The next function, namely "glsqr", will also return a "float" type variable, but it uses a global variable for input. It also does the squaring right within the return statement and therefore has no need to define a separate variable to store the product. The overall structure of this program should pose no problem and will not be discussed in any further detail. As is customary with all example programs, compile and run this program.
There will be times that you will have a need for a function to return a pointer as a result of some calculation. There is a way to define a function so that it does just that. Wehaven’t studied pointers yet, but we will soon. This is just a short preview of things to come.