A forward declared function is a function whose declaration is not immediately followed by its implementation. It can be declared using the forward
keyword, and then we can provide its implementation later on in the same module.
A forward declared function can be called as if it has been implemented completely.
function functionName(parameterList): returnType; forward;
In the above snippet of code, functionName
is replaced by the function’s name. parameterList
is replaced by the parameters and their types. returnType
is replaced by the data type which the function will return (if any). Then the forward
keyword is written.
Let’s consider two examples to understand forward declared functions better:
Program Maximum_Minimum_Number(output);varres: integer;function max(num1, num2: integer): integer; forward;function min(num1, num2: integer): integer;varresult: integer;beginif (num1 > num2) thenresult := num2elseresult := num1;min := result;end;function max(num1, num2: integer): integer;varresult: integer;beginif (num1 > num2) thenresult := num1elseresult := num2;max := result;end;beginres := max(5,10);writeln('The maximum number is: ', res);end.
In the above snippet of code, the max
function is declared first, using the forward
keyword. Then the min
function is declared and implemented. Afterwards, the implementation of the max
function is provided. In this case, the declaration of the max
function is not immediately followed by its implementation.
In the main program block, the max
function is called, and the value returned by it is printed on the screen.
Consider another example with the following snippet of code:
Program OutputLines(output);procedure fun1() ; forward;procedure fun2();beginwriteln('Inside fun2. Calling fun1()');fun1();end;procedure fun1();beginwriteln('Inside fun1');end;beginfun2();end.
In the above snippet of code, there are two procedures, named fun1
and fun2
.
In Pascal, a function is a sub-program that returns a value after execution, whereas a procedure is a subprogram that does not return a value.
The procedure fun1
is forward declared and then used in the procedure fun2
. The implementation of fun1
is provided after it has been used in fun2
. Hence, we can conclude that a forward declared function can be used as if it has been implemented completely.
Free Resources