Skip to Main Content United States    
PRODUCTS SUPPORT SOLUTIONS SERVICES
COMPAQ SOFTWARE
Compaq C

Compaq C
User's Guide for OpenVMS Systems


Previous Contents Index

Chapter 4
4 Data Storage and Representation
     4.1     Storage Allocation
     4.2     ANSI-Compliant Method of Controlling External Objects
     4.3     Global Storage Classes
         4.3.1         The globaldef and globalref Specifiers
         4.3.2         Comparing the Global and the External Storage Classes
         4.3.3         The globalvalue Specifier
     4.4     Storage-Class Modifiers
         4.4.1         The noshare Modifier
         4.4.2         The readonly Modifier
         4.4.3         The _align Modifier
     4.5     Floating-Point Numbers (float, double, long double)
     4.6     Pointer Conversions
     4.7     Structure Alignment
         4.7.1         Bit-Field Alignment
         4.7.2         Bit-Field Initialization
         4.7.3         Variant Structures and Unions
     4.8     Program Sections
         4.8.1         Attributes of Program Sections
         4.8.2         Program Sections Created by Compaq C
Chapter 5
5 Preprocessor Directives
     5.1     CDD/Repository Extraction (#dictionary)
     5.2     File Inclusion (#include)
         5.2.1         Inclusion Using Angle Brackets
         5.2.2         Inclusion Using Quotation Marks
         5.2.3         Inclusion of Text Modules
         5.2.4         Macro Substitution in #include Directives
     5.3     Changing the Default Object Module Name and Identification (#module)
     5.4     Implementation-Specific Preprocessor Directive (#pragma)
         5.4.1         #pragma assert Directive
             5.4.1.1             #pragma assert func_attrs (ALPHA ONLY)
             5.4.1.2             #pragma assert global_status_variable (ALPHA ONLY)
             5.4.1.3             Usage Notes
             5.4.1.4             #pragma assert non_zero
         5.4.2         #pragma builtins Directive
         5.4.3         #pragma dictionary Directive
         5.4.4         #pragma environment Directive
         5.4.5         #pragma extern_model Directive
             5.4.5.1             Syntax
             5.4.5.2             #pragma extern_model common_block
             5.4.5.3             #pragma extern_model relaxed_refdef
             5.4.5.4             #pragma extern_model strict_refdef
             5.4.5.5             #pragma extern_model globalvalue
             5.4.5.6             #pragma extern_model save
             5.4.5.7             #pragma extern_model restore
             5.4.5.8             Effects on the Compaq C Run-Time Library and User Programs
             5.4.5.9             Example
         5.4.6         #pragma extern_prefix Directive
         5.4.7         #pragma function Directive (ALPHA ONLY)
         5.4.8         #pragma [no]include_directory Directive
         5.4.9         #pragma [no]inline Directive
         5.4.10         #pragma intrinsic Directive (ALPHA ONLY)
         5.4.11         #pragma linkage Directive (ALPHA ONLY)
         5.4.12         #pragma [no]member_alignment Directive
         5.4.13         #pragma message Directive
             5.4.13.1             #pragma message option1
             5.4.13.2             #pragma message option2
             5.4.13.3             #pragma message (quoted-string)
         5.4.14         #pragma module Directive
         5.4.15         #pragma names Directive
         5.4.16         #pragma optimize Directive (ALPHA ONLY)
         5.4.17         #pragma pack Directive
         5.4.18         #pragma pointer_size Directive (ALPHA ONLY)
         5.4.19         #pragma required_pointer_size Directive (ALPHA ONLY)
         5.4.20         #pragma [no]standard Directive
         5.4.21         #pragma unroll Directive (ALPHA ONLY)
         5.4.22         #pragma use_linkage Directive (ALPHA ONLY)
Chapter 6
6 Predefined Macros and Built-In Functions
     6.1     Predefined Macros
         6.1.1         CC$gfloat (G_Floating Identification Macro)
         6.1.2         System Identification Macros
             6.1.2.1             The __DECC_VER Macro
             6.1.2.2             The __VMS_VER Macro
         6.1.3         Standards Conformance Macros
         6.1.4         Floating-Point Macros
         6.1.5         Compiler-Mode Macros
         6.1.6         Pointer-Size Macro
         6.1.7         The __HIDE_FORBIDDEN_NAMES Macro
     6.2     Built-In Functions
         6.2.1         Built-In Functions for OpenVMS Alpha Systems (ALPHA ONLY)
             6.2.1.1             Translation Macros for VAX C Built-in Functions
             6.2.1.2             In-line Assembly Code---ASMs
             6.2.1.3             Absolute Value ( __ABS)
             6.2.1.4             Acquire and Release Longword Semaphore (__ACQUIRE_SEM_LONG, __RELEASE_SEM_LONG)
             6.2.1.5             Add Aligned Word Interlocked ( __ADAWI)
             6.2.1.6             Add Atomic Longword ( __ADD_ATOMIC_LONG)
             6.2.1.7             Add Atomic Quadword ( __ADD_ATOMIC_QUAD)
             6.2.1.8             Allocate Bytes from Stack ( __ALLOCA)
             6.2.1.9             AND Atomic Longword ( __AND_ATOMIC_LONG)
             6.2.1.10             AND Atomic Quadword ( __AND_ATOMIC_QUAD)
             6.2.1.11             Atomic Add Longword (__ATOMIC_ADD_LONG)
             6.2.1.12             Atomic Add Quadword (__ATOMIC_ADD_QUAD)
             6.2.1.13             Atomic AND Longword (__ATOMIC_AND_LONG)
             6.2.1.14             Atomic AND Quadword (__ATOMIC_AND_QUAD)
             6.2.1.15             Atomic OR Longword (__ATOMIC_OR_LONG)
             6.2.1.16             Atomic OR Quadword (__ATOMIC_OR_QUAD)
             6.2.1.17             Atomic Increment Longword (__ATOMIC_INCREMENT_LONG)
             6.2.1.18             Atomic Increment Quadword (__ATOMIC_INCREMENT_QUAD)
             6.2.1.19             Atomic Decrement Longword (__ATOMIC_DECREMENT_LONG)
             6.2.1.20             Atomic Decrement Quadword (__ATOMIC_DECREMENT_QUAD)
             6.2.1.21             Atomic Exchange Longword (__ATOMIC_EXCH_LONG)
             6.2.1.22             Atomic Exchange Quadword (__ATOMIC_EXCH_QUAD)
             6.2.1.23             Compare Store Longword ( __CMP_STORE_LONG)
             6.2.1.24             Compare Store Quadword ( __CMP_STORE_QUAD)
             6.2.1.25             Convert G_Floating to F_Floating Chopped ( __CVTGF_C)
             6.2.1.26             Convert G_Floating to Quadword ( __CVTGQ)
             6.2.1.27             Convert IEEE T_Floating to IEEE S_Floating Chopped ( __CVTTS_C)
             6.2.1.28             Convert IEEE T_Floating to Quadword ( __CVTTQ)
             6.2.1.29             Convert X_Floating to Quadword ( __CVTXQ)
             6.2.1.30             Convert X_Floating to IEEE T_Floating Chopped ( __CVTXT_C)
             6.2.1.31             Copy Sign Built-in Functions
             6.2.1.32             Cosine ( __COS)
             6.2.1.33             Double-Precision, Floating-Point Arithmetic Built-in Functions
             6.2.1.34             Floating-Point Absolute Value ( __FABS)
             6.2.1.35             _LEADZ
             6.2.1.36             Long Double-Precision, Floating-Point Arithmetic Built-in Functions
             6.2.1.37             Longword Absolute Value ( __LABS)
             6.2.1.38             Lock and Unlock Longword (__LOCK_LONG, __UNLOCK_LONG)
             6.2.1.39             Memory Barrier ( __MB)
             6.2.1.40             Memory Copy and Set Functions ( __MEMCPY, __MEMMOVE, __MEMSET)
             6.2.1.41             OR Atomic Longword ( __OR_ATOMIC_LONG)
             6.2.1.42             OR Atomic Quadword ( __OR_ATOMIC_QUAD)
             6.2.1.43             Privileged Architecture Library Code Instructions
             6.2.1.44             __PAL_BPT
             6.2.1.45             __PAL_BUGCHK
             6.2.1.46             __PAL_CFLUSH
             6.2.1.47             __PAL_CHME
             6.2.1.48             __PAL_CHMK
             6.2.1.49             __PAL_CHMS
             6.2.1.50             __PAL_CHMU
             6.2.1.51             __PAL_DRAINA
             6.2.1.52             __PAL_GENTRAP
             6.2.1.53             __PAL_HALT
             6.2.1.54             __PAL_INSQHIL
             6.2.1.55             __PAL_INSQHILR
             6.2.1.56             __PAL_INSQHIQ
             6.2.1.57             __PAL_INSQHIQR
             6.2.1.58             __PAL_INSQTIL
             6.2.1.59             __PAL_INSQTILR
             6.2.1.60             __PAL_INSQTIQ
             6.2.1.61             __PAL_INSQTIQR
             6.2.1.62             __PAL_INSQUEL
             6.2.1.63             __PAL_INSQUEL_D
             6.2.1.64             __PAL_INSQUEQ
             6.2.1.65             __PAL_INSQUEQ_D
             6.2.1.66             __PAL_LDQP
             6.2.1.67             __PAL_STQP
             6.2.1.68             __PAL_MFPR_XXXX
             6.2.1.69             __PAL_MTPR_XXXX
             6.2.1.70             __PAL_PROBER
             6.2.1.71             __PAL_PROBEW
             6.2.1.72             __PAL_RD_PS
             6.2.1.73             __PAL_REMQHIL
             6.2.1.74             __PAL_REMQHILR
             6.2.1.75             __PAL_REMQHIQ
             6.2.1.76             __PAL_REMQHIQR
             6.2.1.77             __PAL_REMQTIL
             6.2.1.78             __PAL_REMQTILR
             6.2.1.79             __PAL_REMQTIQ
             6.2.1.80             __PAL_REMQTIQR
             6.2.1.81             __PAL_REMQUEL
             6.2.1.82             __PAL_REMQUEL_D
             6.2.1.83             __PAL_REMQUEQ
             6.2.1.84             __PAL_REMQUEQ_D
             6.2.1.85             __PAL_SWPCTX
             6.2.1.86             __PAL_SWASTEN
             6.2.1.87             __PAL_WR_PS_SW
             6.2.1.88             _POPCNT
             6.2.1.89             _POPPAR
             6.2.1.90             Read Process Cycle Counter ( __RPCC)
             6.2.1.91             Sine ( __SIN)
             6.2.1.92             Single-Precision, Floating-Point Arithmetic Built-in Functions
             6.2.1.93             Test for Bit Clear then Clear Bit Interlocked (__INTERLOCKED_TESTBITCC_QUAD)
             6.2.1.94             Test for Bit Clear then Clear Bit Interlocked (__TESTBITCCI)
             6.2.1.95             Test for Bit Set Then Set Bit Interlocked (__INTERLOCKED_TESTBITSS_QUAD)
             6.2.1.96             Test for Bit Set then Set Bit Interlocked (__TESTBITSSI)
             6.2.1.97             _TRAILZ
             6.2.1.98             Trap Barrier Instruction ( __TRAPB)
             6.2.1.99             Unsigned Quadword Multiply High ( __UMULH)
         6.2.2         Built-In Functions for OpenVMS VAX Systems (VAX ONLY)
             6.2.2.1             Allocate Bytes from Stack ( __ALLOCA)
             6.2.2.2             Add Aligned Word Interlocked ( _ADAWI)
             6.2.2.3             Branch on Bit Clear-Clear Interlocked ( _BBCCI)
             6.2.2.4             Branch on Bit Set-Set Interlocked ( _BBSSI)
             6.2.2.5             Find First Clear Bit ( _FFC)
             6.2.2.6             Find First Set Bit ( _FFS)
             6.2.2.7             Halt ( _HALT)
             6.2.2.8             Insert Entry into Queue at Head Interlocked ( _INSQHI)
             6.2.2.9             Insert Entry into Queue at Tail Interlocked ( _INSQTI)
             6.2.2.10             Insert Entry in Queue ( _INSQUE)
             6.2.2.11             Locate Character ( _LOCC)
             6.2.2.12             Move from Processor Register ( _MFPR)
             6.2.2.13             Move Character 3 Operand ( _MOVC3)
             6.2.2.14             Move Character 5 Operand ( _MOVC5)
             6.2.2.15             Move from Processor Status Longword ( _MOVPSL)
             6.2.2.16             Move to Processor Register ( _MTPR)
             6.2.2.17             Probe Read Accessibility ( _PROBER)
             6.2.2.18             Probe Write Accessibility ( _PROBEW)
             6.2.2.19             Read General-Purpose Register ( _READ_GPR)
             6.2.2.20             Remove Entry from Queue at Head Interlocked ( _REMQHI)
             6.2.2.21             Remove Entry from Queue at Tail Interlocked ( _REMQTI)
             6.2.2.22             Remove Entry from Queue ( _REMQUE)
             6.2.2.23             Scan Characters ( _SCANC)
             6.2.2.24             Skip Character ( _SKPC)
             6.2.2.25             Span Characters ( _SPANC)


Previous Next Contents Index
Buy Online or Call 1.800.888.0220      privacy statement and legal notices 
STORES CONTACT US SEARCH PRODUCTS SOLUTIONS OPTIONS DEVELOPERS