Installation guide
The ULTRIX compiler allows you to use a partial string in a macro
definition, as shown:
#define abc "123
You can use this definition in a printf statement, as follows:
printf(abc 456");
The output from this printf statement is the following:
123 456
To get the same effect on a DIGITAL UNIX system, use the following
definition and printf statement:
#define abc "123"
printf(abc " 456");
• On DIGITAL UNIX systems, you can use recursive macro definitions
when you specify the −std0 option. On ULTRIX systems, you cannot
define macros recursively.
7.4.2.3 Differences that Apply to Strict ANSI Mode
The strict ANSI C DIGITAL UNIX compilation mode (specified by the
−std1 option) differs from ULTRIX C in the following ways that can affect
migrating C source code from ULTRIX C:
• On DIGITAL UNIX systems, declaring a local and external variable of
the same name causes an error. You must use unique identifier names
for each scope.
On ULTRIX systems, you can declare a local variable of the same name
as an external variable. The local variable has precedence.
• On DIGITAL UNIX systems, you must not use a trailing comma in an
enumerator list. ULTRIX systems allow the trailing comma as shown:
enum protocols { TCP, SNMP, OSI, };
The trailing comma causes an error on DIGITAL UNIX systems, so you
must remove it.
• On DIGITAL UNIX systems, you cannot specify an empty declaration
such as the following one:
main
{
;
.
.
.
}
7–26 Migrating Your ULTRIX Application to a DIGITAL UNIX System