Guide to VAXC

Order Number: AI-L370C-TE

This document, "Guide to VAX C" (Order No. AI-L370C-TE, March 1987) by Digital Equipment Corporation, provides comprehensive information for programmers developing and debugging VAX C programs in the VMS (Version 4.2 or higher) and MicroVMS environments. It aims to serve as a reference for experienced programmers, detailing the VAX C programming language, its development within the VMS ecosystem, and considerations for cross-system portability.

The guide is structured into three main parts:

  1. Developing VAX C Programs on VMS: Covers the practical steps of creating, compiling, linking, and running VAX C programs using Digital Command Language (DCL) commands, along with an introduction to using the VMS Debugger.
  2. VAX C Programming Concepts: Explains fundamental C language constructs as implemented in VAX C, including program structure, statements, expressions, operators, data types, declarations, storage classes, allocation, and preprocessor directives.
  3. Using VAX C Features on VMS: Delves into VMS-specific functionalities, such as utilizing VAX Record Management Services (RMS) for file handling and integrating VAX C subprograms with other VAX languages within the Common Language Environment.

Key new and changed features highlighted in VAX C Version 2.3 (which this revised document supersedes previous versions):

  • Support for VAX Source Code Analyzer (VAXSCA).
  • Incompatibility between modules compiled with VAX C V1.n and V2.n compilers, requiring re-compilation.
  • The VAX C Run-Time Library (RTL) is now distributed with the VMS Run-Time Library.
  • Introduction of function prototypes for argument type checking and conversion during function declarations and calls.
  • Discouragement of using the underscore as the first character in program identifiers due to its reserved use for implementation-specific elements.
  • Changes to floating-point arithmetic, allowing VAX C to use the precision of the operand when /PRECISION=SINGLE is specified, rather than always double precision.
  • Support for volatile and const data type specifiers.
  • Support for the /INCLUDE_DIRECTORY qualifier for user-defined include files.
  • Support for variant structure and union declarations and vacuous tag declarations.
  • Addition of hexadecimal characters in escape sequences and _align for data alignment.
  • New preprocessor directives: #pragma and #elif, and the defined operator in #if directives.
  • Inclusion of predefined macros like __DATE__, __FILE__, __LINE__, and __TIME__.
  • Allowance for macro substitution within #include preprocessor directives.
  • Addition of new library files, limits.h and float.h, and enhanced diagnostic messages.
AI-L370C-TE
March 1987
506 pages
Quality

Original
15MB

Site structure and layout ©2025 Majenko Technologies