Function Return Values. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 Parameters That Are Pointers to Procedures . . . . . . . . . . . . 131 Procedures and Functions as Parameters . . . . . . . . . . . . . . . . . . 132 Global Variables in C and Pascal . . . . . . . . . . . . . . . . . . . . . . . . . 133 File-Passing Between Pascal and C . . . . . . . . . . . . . . . . . . . . . . . 134

7. The C++–Pascal Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137

Sample Interface. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 Compatibility of Types for C++ and Pascal . . . . . . . . . . . . . . . . 138 C++ Name Encoding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 Procedure Calls: C++–Pascal . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 Arguments Passed by Reference . . . . . . . . . . . . . . . . . . . . . . 139 Arguments Passed by Value . . . . . . . . . . . . . . . . . . . . . . . . . . 150 Function Return Values. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 Procedure Calls: Pascal–C++ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 Arguments Passed by Reference . . . . . . . . . . . . . . . . . . . . . . 155 Arguments Passed by Value . . . . . . . . . . . . . . . . . . . . . . . . . . 157 Function Return Values. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 Global Variables in C++ and Pascal. . . . . . . . . . . . . . . . . . . . . . . 161 Pascal File Pointers to C++ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162

8. The FORTRAN–Pascal Interface . . . . . . . . . . . . . . . . . . . . . . . . 163

Compiler Mixed-Language Programs . . . . . . . . . . . . . . . . . . . . . 163 Compatibility of Types for FORTRAN and Pascal. . . . . . . . . . . 164 Precautions with Compatible Types . . . . . . . . . . . . . . . . . . . 165 Incompatibilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166

x

Pascal 4.0 User’s Guide