Thread View: mod.std.c
1 messages
1 total messages
Started by Orlando Sotomayor-Diaz
Tue, 13 May 1986 13:06
mod.std.c Digest V16#8
Author: Orlando Sotomayor-Diaz
Date: Tue, 13 May 1986 13:06
Date: Tue, 13 May 1986 13:06
201 lines
7729 bytes
7729 bytes
From: Orlando Sotomayor-Diaz (The Moderator) <cbosgd!std-c>
mod.std.c Digest Tue, 13 May 86 Volume 16 : Issue 8
Today's Topics:
Differences from April 1985 to February 1986 Draft Standard, Part 7
----------------------------------------------------------------------
Date: Sun, 27 Apr 86 01:17:06 est
From: <ihnp4!utcsri!lsuc!msb%utcsri>
Subject: Differences from April 1985 to February 1986 Draft Standard, Part 7
To: cbosgd!std-c%utcsri
# C.4 CONSTANT EXPRESSIONS
An expression that evaluates to a constant is required in several
* contexts ... More latitude is permitted for initializers {of ob-
jects that have static storage duration -->}.
# C.5 DECLARATIONS
<--O As discussed later, a declaration without a declarator may be
<--O used to declare a structure, union, or enumeration tag. Any oth-
<--O er kind of declaration without a declarator is also permitted,
<--O though without effect.
N--> A declaration shall declare at least a declarator, a tag, or the
N--> members of an enumeration.
# C.5.1 Storage-class specifiers
A declaration with storage-class specifier extern indicates that
* {-->, if the identifier declared is in fact referred to, then}
somewhere in the set of source files that constitutes the entire
* program there exists an "external {data --> object} definition"
* for the given identifier (a definition with file scope). {--> If
the declaration with storage-class specifier extern occurs out-
side a function, the identifier is declared with file scope and
external linkage, and may itself serve as the required defini-
tion, as discussed later.}
# C.5.1 Storage-class specifiers
<--O Invalid or excess register declarations are treated as auto de-
<--O clarations.
N--> The implementation may treat any register declaration simply as
N--> an auto declaration.
# C.5.2.1 Structure and union specifiers
N--> The presence of a struct-declaration-list in a struct-or-union-
N--> specifier declares a new type.
# C.5.2.1 Structure and union specifiers
In addition, a member may be declared to consist of a specified
* number of bits {--> (including a sign bit, if any)}. Such a
member is called a "bit-field" ...
* ... {--> An implementation may allocate any addressable storage
unit large enough to hold a bit-field.} If enough space remains,
* a bit-field that follows another bit-field {is --> shall be}
* packed into adjacent bits of the same {int --> unit}. {An imple-
mentation may refuse to permit a bit-field to straddle an int
boundary, in which case a bit-field that does not fit into the
space remaining in an int is put into the next int. --> If insuf-
ficient space remains, whether a bit-field that does not fit is
put into the next unit is implementation-defined.} The order of
* allocation of bit-fields within {an int --> a unit} (high-order
to low-order or low-order to high-order) is implementation-
defined.
# C.5.2.1 Structure and union specifiers
N--> A pointer to a structure object, suitably cast, points to its in-
N--> itial member or, if it is a bit-field, to the unit in which it
N--> resides.
N--> ... A pointer to a union object, suitably cast, points to each
N--> of its members or, if a member is a bit-field, to the unit in
N--> which it resides.
# C.5.2.1 Structure and union specifiers
N--> There may therefore be unnamed holes within a structure, but not
N--> at its beginning {-->, nor more than necessary to achieve the ap-
N--> propriate alignment}.
# C.5.2.3 Enumeration specifiers
* The scope of an enumeration constant {is the same as that of -->
begins after its declaration and ends with the scope of} the
enumeration of which it is a member.
# C.5.2.3 Enumeration specifiers
* {--> An object that has an enumeration type behaves like an int
in an expression.} The implementation may use the set of values
in the enumeration to determine whether to make the effective
* type of an enum object a shorter {signed -->} integral type that
will promote to int ...
# C.5.3 Declarators
Remark: Again, the notation [opt] below represents a subscript
opt, which means optional. The [] characters not part of [opt]
are real [] characters. The {} characters are the usual differ-
ence notation of this article.
declarator:
pointer[opt] declarator2
declarator2:
identifier
( declarator )
declarator2 [ constant-expression[opt] ]
* declarator2 ( parameter-type-list {[opt] -->} )
* declarator2 ( {parameter-identifier-list[opt]
--> identifier-list[opt]} )
<--O ... parameter-identifier-list:
<--O identifier-list
<--O identifier-list , ...
# C.5.3 Declarators
* The implementation shall allow at least {six --> 12} pointer, ar-
ray, and function declarators (in any combinations) modifying a
basic type, either directly or via typedefs.
# C.5.3.3 Function declarators {--> (including prototypes)}
<--O A parameter identifier list declares only the identifiers of the
<--O formal parameters of the function, and may be present in the de-
<--O clarator only in a function declaration (#C.7.1). If the list is
<--O empty, the function has no parameters.
N--> An identifier list declares only the identifiers of the formal
N--> parameters of the function. If the list is empty in a function
N--> declaration that is not part of a function definition, no infor-
N--> mation about the number or types of the parameters is supplied.
N--> If the list is empty in a function declaration that is part of a
N--> function definition, the function has no parameters.
# C.5.4 Type names
N--> Empty parentheses in a type name are interpreted as "function
N--> with no parameter type information", rather than redundant
N--> parentheses around the omitted identifier.
# C.5.5 Type definitions and type equivalence
<--O In the program fragment
<--O typedef float length;
<--O /*...*/
<--O {
<--O static int length;
<--O /*...*/
<--O if the int type specifier were omitted from the second declara-
<--O tion, it would be taken to be a (semantically vacuous) declara-
<--O tion with type length and no declarators.
------------------------------
End of mod.std.c Digest - Tue, 13 May 86 09:05:58 EDT
******************************
USENET -> posting only through cbosgd!std-c.
ARPA -> ... through cbosgd!std-c@BERKELEY.ARPA (NOT to INFO-C)
In all cases, you may also reply to the author(s) above.
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads