Supported data types passed by value

Table 1 identifies the data types that can be passed by value (without using a C++ pointer) between C++ and PL/I applications.

In order for a C++ routine to pass a parameter without using a pointer, the argument should be passed, and the PL/I routine should receive the parameter as the equivalent PL/I data type.

Table 1. Supported data types between C++ and PL/I by value
C++ PL/I
signed int REAL FIXED BINARY(31,0)
signed long int REAL FIXED BINARY(31,0)
double FLOAT DECIMAL(16)
double FLOAT BINARY(53)
long double FLOAT DECIMAL(33)
long double FLOAT BINARY(109)
Note: The preferred PL/I data declarations for the C double and long double data types are FLOAT BINARY(53) and FLOAT BINARY(109), respectively. Data storage alignment must match.