IBM i pointer Types
The IBM® i pointer
types are:
- Open
- Pointers that can hold any of the other pointer types
- Space
- Generic pointers to data objects.
- Function
- System pointers to *PGM objects or procedure pointers to bound ILE procedures.
- System
- Pointers to system objects such as queues, indexes, libraries, and *PGM objects.
- Label
- Pointers to fixed locations within the executable code of a procedure or function.
- Invocation
- Pointers to process objects for procedure (function) calls under ILE, or program calls under EPM or OPM.
- Suspend
- Pointer to the location in a procedure where control has been suspended.
These pointer types, as well as pointers to data objects and incomplete
types, are not data-type compatible with each other. For example,
a variable declared as a pointer to a data object cannot be assigned
the value of a function pointer or system pointer. A system pointer
cannot be compared for equality with an invocation pointer or pointer
to a data object. The above is not true for open pointers.
Note:
- Label pointers are only used by the
setjmp
macro. - An open pointer is a pseudo-pointer type. It may contain any other pointer type, but it is not a pointer type unto itself.