Vax C90-EL SERIES Service Manual Page 184

  • Download
  • Add to my manuals
  • Print
  • Page
    / 216
  • Table of contents
  • BOOKMARKS
  • Rated. / 5. Based on customer reviews
Page view 183
Cray Standard C/C++ Reference Manual
enum tags can be incomplete as long as the tag name is defined and resolved
by specifying the brace-enclosed list later.
An extra comma is allowed at the end of an enum list.
The final semicolon preceding the closing of a struct or union type
specifier can be omitted.
A label definition can be immediately followed by a right brace ( } ).
(Normally, a statement must follow a label definition.)
An empty declaration (a semicolon preceded by nothing) is allowed.
An initializer expression that is a single value and is used to initialize an
entire static array, struct, or union does not need to be enclosed in braces.
ANSI C requires braces.
In an initializer, a pointer constant value can be cast to an integral type if the
integral type is large enough to contain it.
The address of a variable with register storage class may be taken.
In an integral constant expression, an integer constant can be cast to a pointer
type and then back to an integral type.
In duplicate size and sign specifiers (for example, short short or
unsigned unsigned) the redundancy is ignored.
Benign redeclarations of typedef names are allowed. That is, a typedef
name can be redeclared in the same scope with the same type.
Dollar sign ($) and at sign (@) characters can be accepted in identifiers
by using the -h calchars command line option. This is not allowed by
default.
Numbers are scanned according to the syntax for numbers rather than the
pp-number syntax. Thus, 0x123e+1 is scanned as three tokens instead
of one token that is not valid. If the -h conform option is specified, the
pp-number syntax is used.
Assignment and pointer differences are allowed between pointers to types
that are interchangeable but not identical, for example, unsigned char *
and char *. This includes pointers to integral types of the same size (for
example, int * and long *). Assignment of a string constant to a pointer to
any kind of character is allowed without a warning.
Assignment of pointer types is allowed in cases where the destination type
has added type qualifiers that are not at the top level (for example, int **
164 S217936
Page view 183
1 2 ... 179 180 181 182 183 184 185 186 187 188 189 ... 215 216

Comments to this Manuals

No comments