C/C++ Programmer's Guide (G06.27+, H06.08+, J06.03+)

storage class static, which means that they retain their values throughout the execution of the
entire program.
Figure 2 Memory Models
The size of the extended segment is the sum of the heap size you specify during compilation or
binding and the sizes of all global and static aggregates. The physical limit of the extended segment
is 127.5 MB; the practical limit depends on paging rates and disk space. If one of the
memory-allocation functions (calloc(), malloc(), or realloc()) cannot allocate a block of
the requested size from the heap, it automatically attempts to enlarge the extended segment.
The stack, global, and static aggregates that have been specified with the NOXVAR pragma and
global and static scalars are stored in the user data segment. The user data segment is limited to
a total of 64 KB.
Buffers that are used in certain Guardian system procedure calls must be stored in the user data
segment so that they will be 16-bit addressable. See the description of pragma XVAR (page 260),
for a discussion of the XVAR and NOXVAR pragmas and how to use them to specify whether global
and static aggregates are stored in the extended segment or the user data segment.
324 Running and Debugging C and C++ Programs