4.2 ANSI-Compliant Method of Controlling External Objects

Sections 4.3 and 4.4 describe the following external linkage storage-class specifiers and modifiers that are specific to DEC C for OpenVMS Systems:


globaldef
globalref
globalvalue
noshare
readonly
_align

These keywords are supported by the DEC C compiler for compatibility purposes, and are available only in VAX C mode (/STANDARD=VAXC) and relaxed ANSI mode (/STANDARD=RELAXED_ANSI89)

However, the DEC C compiler also provides an alternative, ANSI- compliant method of controlling objects that have external linkage. To take advantage of this method, use the #pragma extern_model preprocessor directive and the /EXTERN_MODEL and /[NO]SHARE_GLOBALS command-line qualifiers.

The pragma and command-line qualifiers replace the VAX C mode storage-class specifiers (globaldef, globalref, globalvalue) and storage-class modifiers (noshare and readonly). They allow you to select the implementation model of external data and control the psect usage of your programs. The _align macro is still used to ensure object alignment.

The pragma and command-line qualifier approach also has these advantages:

For a description of the #pragma extern_model preprocessor directive and its relationship to the external storage classes it replaces, see Section 5.4.4.

For a description of the _align storage-class modifier, see Section 4.4.3.

For a description of the /EXTERN_MODEL and /[NO]SHARE_GLOBALS command-line qualifiers, see Section 1.3.4.


Previous Page | Next Page | Table of Contents | Index