A function procedure returns its result value to the calling procedure in one of three ways, depending upon the data type:
If the result is returned in a temporary storage area, the calling procedure provides the temporary area and passes its address as the first (hidden) parameter in the call.