4
Using Units and Header Files
70
You can also separate the compilation and linking or loading steps, as follows:
hostname% pc program_unit.p -c
hostname% pc module_unit.p -c
hostname% pc program_unit.o module_unit.o
In this case, you call pc on each unit with the "compile only" option (-c),
which produces an object file with the extension .o. When you use this
option, the compiler driver does not call the linker, ld. You then call pc a
second time, giving the names of the object files, and pc calls pc3 to check for
name and type conflicts before calling the linker.
Calling the linker or loader ld(1) directly does not have the same effect as
calling pc; when you call ld(1) directly, the files are linked and loaded, but
they are not checked for conflicts.
A complex program may have many routines defined in modules. Each
routine must have a declaration (for example, procedure proc; extern;) in
each file that calls the routine. The easiest way to be sure that you have a
correct and consistent set of declarations is to create a header file.
A header file is a file that contains a set of declarations, nothing else. You use
a header file by using an include directive to include the header file in the
compilation.
For example, here is a modified version of the program, program_unit, that
uses a header file:
program program_unit2 (output);
include "header.h"
begin
say_hello
end.
In this case, the content of header.h is very simple:
procedure say_hello; extern;
Pascal 4.0 User's Guide
Need help?
Do you have a question about the SunSoft Pascal 4.0 and is the answer not in the manual?
Questions and answers