IBM AS/400 manual Passing by Value, Passing Prototyped Parameters

Models: AS/400

1 489
Download 489 pages 47.95 Kb
Page 160
Image 160

Passing Prototyped Parameters

Passing by Value

With a prototyped procedure, you can pass a parameter by value inst reference. When a parameter is passed by value, the compiler passes value to the called procedure.

Note: OS/400 program calls require that parameters be passed by refere Consequently, you cannot pass a parameter by value to a program.

Passing by value allows you to:

¹ Pass literals and expressions as parameters.

¹Pass parameters that do not match exactly the type and length that expected.

¹ Pass a variable that, from the caller's perspective, will not be mod

When a parameter is passed by value, the called program or procedure change the value of the parameter, but the caller will never see the

One

primary use for

passing by

value

is

that

you

can

allow

less

strin

of the attributes of the passed parameter.

For

example,

if

the

def

numeric field

of type packed-decimal

and

length

5

with

2

decimal

posit

must

pass a

numeric

value, but

it can

be:

 

 

 

 

 

 

¹A packed, zoned or binary constant or variable, with any number of

number of decimal positions

¹

A

built-in function returning a numeric value

¹

A

procedure returning a numeric value

¹

A

complex numeric expression such as

 

 

2 * (Min(Length(First) + Length(Last) + 1): %size(Name))

If the prototype requires an array of 4 elements, the passed param

¹

An

array

with

fewer

than

4

elements. In this case, the remaining

 

the received

parameter will

contain the default value for

the

type

¹

An

array

with

4

elements.

In

this case, each element of

the

rece

 

will

correspond

to

an

element

of the passed parameter.

 

 

¹An array with more than 4 elements. In this case, some of the ele

passed array will not be passed to the received parameter.

¹ A non-array. In this

case, each element of the received parameter

the

passed

parameter

value.

 

To pass a parameter by

value, specify

the keyword VALUE on the para

nition

in the

prototype,

as shown in the

figures below.

136 ILE RPG for AS/400 Programmer's Guide

Page 160
Image 160
IBM AS/400 manual Passing by Value, Passing Prototyped Parameters, 2 * MinLengthFirst + LengthLast + 1 %sizeName