Preface |
Preface
|
Preface
|
Chapter 1 |
1
|
Developing Compaq C Programs
|
1.1
|
DCL Commands for Program Development
|
1.2
|
Creating a Compaq C Program
|
1.2.1
|
Using TPU
|
1.2.2
|
The EVE Interface to TPU
|
1.3
|
Compiling a Compaq C Program
|
1.3.1
|
The CC Command
|
1.3.1.1
|
Including Header Files
|
1.3.1.2
|
Listing Header Files
|
1.3.2
|
Compilation Modes
|
1.3.3
|
Microsoft Compatibility Compilation Mode
|
1.3.3.1
|
Unnamed Nested struct or union Members
|
1.3.3.2
|
Block Scope Declaration of static Functions
|
1.3.3.3
|
Treat &* as Having No Effect
|
1.3.3.4
|
Integer and Pointer Comparisons without a Cast
|
1.3.3.5
|
char is Not Treated as a Unique Type
|
1.3.3.6
|
Double Semicolons in Declarations
|
1.3.3.7
|
Declaration without a Type
|
1.3.3.8
|
Enumerators in an Enumeration Declaration
|
1.3.3.9
|
Useless Typedefs
|
1.3.3.10
|
Unrecognized Pragmas Accepted
|
1.3.4
|
CC Command Qualifiers
|
1.3.5
|
Compiler Diagnostic Messages
|
1.4
|
Linking a Compaq C Program
|
1.4.1
|
The LINK Command
|
1.4.2
|
LINK Command Qualifiers
|
1.4.3
|
Linker Input Files
|
1.4.4
|
Linker Output Files
|
1.4.5
|
Linking Against Object Module Libraries and Shareable Images
|
1.4.6
|
Object Module Libraries
|
1.4.7
|
Linker Error Messages
|
1.5
|
Running a Compaq C Program
|
1.6
|
Passing Arguments to the main Function
|
1.7
|
64-bit Addressing Support (ALPHA ONLY)
|
1.7.1
|
Qualifiers and Pragmas
|
1.7.1.1
|
The /POINTER_SIZE Qualifier
|
1.7.1.2
|
The __INITIAL_POINTER_SIZE Macro
|
1.7.1.3
|
The /CHECK=POINTER_SIZE Qualifier
|
1.7.1.4
|
Pragmas
|
1.7.2
|
Determining Pointer Size
|
1.7.2.1
|
Special Cases
|
1.7.2.2
|
Mixing Pointer Sizes
|
1.7.3
|
Header File Considerations
|
1.7.4
|
Prologue/Epilogue Files
|
1.7.4.1
|
Rationale
|
1.7.4.2
|
Using Prologue/Epilogue Files
|
1.7.5
|
Avoiding Problems
|
1.7.6
|
Examples
|
Chapter 2 |
2
|
Using OpenVMS Record Management Services
|
2.1
|
RMS File Organization
|
2.1.1
|
Sequential File Organization
|
2.1.2
|
Relative File Organization
|
2.1.3
|
Indexed File Organization
|
2.2
|
Record Access Modes
|
2.3
|
RMS Record Formats
|
2.4
|
RMS Functions
|
2.5
|
Writing Compaq C Programs Using RMS
|
2.5.1
|
Initializing File Access Blocks
|
2.5.2
|
Initializing Record Access Blocks
|
2.5.3
|
Initializing Extended Attribute Blocks
|
2.5.4
|
Initializing Name Blocks
|
2.6
|
RMS Example Program
|
Chapter 3 |
3
|
Using Compaq C in the Common Language Environment
|
3.1
|
Basic Calling Standard Conventions
|
3.1.1
|
Register and Stack Usage
|
3.1.2
|
Return of the Function Value
|
3.1.3
|
The Argument List
|
3.2
|
Specifying Parameter-Passing Mechanisms
|
3.2.1
|
Passing Arguments by Immediate Value
|
3.2.2
|
Passing Arguments by Reference
|
3.2.3
|
Passing Arguments by Descriptor
|
3.2.4
|
Compaq C Default Parameter-Passing Mechanisms
|
3.3
|
Interlanguage Calling
|
3.3.1
|
Calling Compaq FORTRAN
|
3.3.2
|
Calling VAX MACRO
|
3.3.3
|
Calling Compaq BASIC
|
3.3.4
|
Calling Compaq Pascal
|
3.4
|
Sharing Global Data
|
3.4.1
|
Sharing Program Sections with FORTRAN Common Blocks
|
3.4.2
|
Sharing Program Sections with PL/I Externals
|
3.4.3
|
Sharing Program Sections with MACRO Programs
|
3.5
|
OpenVMS Run-Time Library Routines
|
3.6
|
OpenVMS System Services Routines
|
3.7
|
Calling Routines
|
3.7.1
|
Determining the Type of Call
|
3.7.2
|
Declaring an External Routine and Its Arguments
|
3.7.3
|
Calling the External Routine
|
3.7.4
|
System Routine Arguments
|
3.7.5
|
Symbol Definitions
|
3.7.6
|
Condition Values
|
3.7.7
|
Checking System Service Return Values
|
3.8
|
Variable-Length Argument Lists in System Services
|
3.9
|
Return Status Values
|
3.9.1
|
Format of Return Status Values
|
3.9.2
|
Manipulating Return Status Values
|
3.9.3
|
Testing for Success or Failure
|
3.9.4
|
Testing for Specific Return Status Values
|
3.10
|
Examples of Calling System Routines
|