Installation guide

The DIGITAL UNIX C compiler does not allow you to specify #if
directives within a macro call. Move #if directives outside of macro
calls.
The DIGITAL UNIX C compiler requires you to use braces ({})in
initializers more precisely than the ULTRIX C compiler.
For example, the following initialization is valid on ULTRIX systems:
struct S {char i[10]; int j} y = {{"aeiou", 1}};
The DIGITAL UNIX C compiler issues an error message in response to
the preceding initialization. To achieve the same effect on DIGITAL
UNIX systems, use the following initialization statement:
struct S {char i[10]; int j} y = {"aeiou", 1};
In this example, the initialization of y contains only one set of braces.
On DIGITAL UNIX systems, you cannot declare a single type name
(using typedef) more than once except within an inner block.
The DIGITAL UNIX C compiler allows you to specify hexadecimal
escape sequences in character strings and constants. On ULTRIX
systems, the escape sequence is translated; for example, \x is
interpreted as x on ULTRIX systems.
7.4.2.2 Differences that Apply to the Default Mode
The default DIGITAL UNIX C compilation mode (specified by the std0
option) differs from ULTRIX C in the following ways that can affect
migrating C source code from ULTRIX C:
To comply with the ANSI C standard, the DIGITAL UNIX C compiler
replaces comments with one space character during preprocessing.
Therefore, you cannot use a comment as a concatenation character on
DIGITAL UNIX systems.
On ULTRIX systems, comments within C statements are deleted with
no spaces. This action allows you to use a comment as a concatenation
character.
On DIGITAL UNIX systems, replace a comment that you use as a
concatenation character with the ANSI-defined concatenation
characters (##).
The DIGITAL UNIX compiler uses the ANSI definition of a string for C
programs. ANSI defines a string in the C language as a contiguous
sequence of characters terminated by, and including, the first null
character. As a result, a partial string is not a valid processing token, so
you cannot use a partial string in the replacement list of a macro
definition.
Migrating Your ULTRIX Application to a DIGITAL UNIX System 7–25