Appendix A |
Appendix A
|
VAX C to Compaq C Differences
|
A.1
|
Features Affecting the Compiler
|
A.1.1
|
Compaq C Qualifiers
|
A.1.2
|
Comment Processing
|
A.1.3
|
String Literal Concatenation
|
A.1.4
|
Recursive main() Function
|
A.1.5
|
Trigraph Sequences
|
A.1.6
|
Alert Escape Sequence
|
A.1.7
|
Hexadecimal Escape Sequence
|
A.1.8
|
Invalid Escape Sequences
|
A.1.9
|
$ in Macro Names
|
A.1.10
|
Null Arguments to Macros
|
A.1.11
|
ANSI C Name Space Conformance
|
A.1.11.1
|
Non-ANSI Keywords
|
A.1.11.2
|
Non-ANSI Predefined Macros
|
A.1.11.3
|
Non-ANSI Identifiers in Standard-Specified Header Files
|
A.1.12
|
Compaq C Predefined Macros
|
A.1.13
|
Compaq C Types
|
A.1.13.1
|
signed Reserved Word
|
A.1.13.2
|
Removal of the long float Type
|
A.1.13.3
|
Addition of the long double Type
|
A.1.13.4
|
Addition of Processor-Specific Integer Data Types
|
A.1.14
|
Type Compatibility
|
A.1.15
|
Composite Types
|
A.1.16
|
Enumerations Have Type int
|
A.1.17
|
long double Constants
|
A.1.18
|
Implicit Unsigned Integer Constants
|
A.1.18.1
|
OpenVMS VAX Systems
|
A.1.18.2
|
OpenVMS Alpha Systems
|
A.1.19
|
Multibyte and Wide Character Support
|
A.1.19.1
|
The Wide Character Type
|
A.1.19.2
|
Multibyte Characters in Comments, Character Constants, and String Literals
|
A.1.19.3
|
Wide Character Constants
|
A.1.19.4
|
Wide String Literals
|
A.1.20
|
Usual Arithmetic Conversions
|
A.1.21
|
Indexing as a Commutative Operator
|
A.1.22
|
Cast Operators
|
A.1.23
|
Function Calls
|
A.1.23.1
|
Assignment Compatibility Argument Checking
|
A.1.23.2
|
Passing Narrow Types to Old Syntax Functions
|
A.1.24
|
"Address of" Operator
|
A.1.25
|
Unary Plus
|
A.1.26
|
Relational Operators
|
A.1.27
|
Assignment Compatibility
|
A.1.28
|
Declarations
|
A.1.28.1
|
Implementation Limits
|
A.1.28.2
|
Identifier Name Length
|
A.1.28.3
|
Diagnosing Empty Declarations
|
A.1.28.4
|
Restriction on Placement of Storage-Class Specifiers
|
A.1.28.5
|
Diagnosing Old-Style Function Declarations
|
A.1.28.6
|
Function Definitions Using typedef-names
|
A.1.28.7
|
Initialization
|
A.1.29
|
Bit-Field Initialization
|
A.1.30
|
The Preprocessor
|
A.1.30.1
|
White Space Appearing Before the #
|
A.1.30.2
|
The #define Directive and Macro Substitution
|
A.1.30.3
|
The #line Directive
|
A.1.30.4
|
The #error Directive
|
A.1.30.5
|
The #pragma builtins Directive
|
A.1.30.6
|
The #pragma dictionary Directive
|
A.1.30.7
|
The #pragma extern_model Directive
|
A.1.30.8
|
The #pragma linkage Directive (ALPHA ONLY)
|
A.1.30.9
|
The #pragma use_linkage Directive (ALPHA ONLY)
|
A.1.30.10
|
The #pragma message Directive
|
A.1.30.11
|
The #pragma module Directive
|
A.2
|
Features Affecting the Compaq C Run-Time Library and Include Files
|
A.2.1
|
<stddef.h>
|
A.2.2
|
<ctype.h>
|
A.2.3
|
<fp_class.h>
|
A.2.4
|
<locale.h>
|
A.2.5
|
<math.h>
|
A.2.6
|
<signal.h>
|
A.2.7
|
<stdio.h>
|
A.2.8
|
<stdlib.h>
|
A.2.9
|
<string.h>
|
A.2.10
|
<time.h>
|
A.3
|
Unsupported Features
|
Appendix B |
Appendix B
|
Common Pitfalls
|
Appendix C |
Appendix C
|
Programming Tools
|
C.1
|
OpenVMS Debugger
|
C.1.1
|
Compiling and Linking to Prepare for Debugging
|
C.1.2
|
Starting and Terminating a Debugging Session
|
C.1.3
|
Notes on Compaq C Support
|
C.1.3.1
|
Debugger Command-Line Options
|
C.1.3.2
|
Accessing Scalar Variables
|
C.1.3.3
|
Accessing Arrays
|
C.1.3.4
|
Accessing Character Strings
|
C.1.3.5
|
Accessing Structures and Unions
|
C.1.3.6
|
Sample Debugging Session
|
C.2
|
OpenVMS Text Processing Utility
|
C.3
|
Language-Sensitive Editor and the Source Code Analyzer
|
C.3.1
|
Preparing an SCA Library
|
C.3.2
|
Starting and Terminating an LSE or an SCA Session
|
C.3.3
|
Programming Language Placeholders and Tokens
|
C.3.4
|
Compiling Source Code
|
C.3.5
|
LSE Examples
|
C.3.5.1
|
Compilation Unit
|
C.3.5.2
|
Preprocessor Lines
|
C.4
|
CDD/Repository
|
C.4.1
|
Using CDD/Repository
|
C.4.2
|
Accessing CDD/Repository from Compaq C Programs
|
C.4.3
|
Support for CDD/Repository Data Types
|