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)
|