7
Compatibility of Types for C++ and Pascal
C++ Name Encoding
Procedure Calls: C++–Pascal
The Pascal procedure, Samp,
in the file, Samp.p
138
Table 6-1 and Table 6-2 on page 90 list the default sizes and alignments of
compatible types for C and Pascal. They apply to C++ as well.
To implement function overloading and type-safe linkage, the C++ compiler
normally appends type information to the function names. To prevent the C++
compiler from doing so, and to allow Pascal to call a C++ function, declare the
C++ function with the extern "C" language construct. One common way to
do this is in the declaration of a function, like this:
extern "C" void f (int);
...
void f (int) { /* ...body of f... */ }
For brevity, you can also combine extern "C" with the definition of the
function, as in:
extern "C" void f (int)
{ /* ...body of f... */ }
Following are examples that illustrate how a C++ main program calls a Pascal
procedure. Included in each example are the Pascal procedure, the C++ main
program, and the commands to compile and execute the final program.
procedure Samp (var i: integer; var r: real);
begin
i := 7;
r := 3.14;
end
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