Braced initializers (again)
Doug Gwyn
gwyn at smoke.BRL.MIL
Wed May 30 21:39:06 AEST 1990
In article <1753 at tkou02.enet.dec.com> diamond at tkou02.enet.dec.com (diamond at tkovoa) writes:
>Two of the interpretations, which were themselves very informative
>and helpful, which wildly contradicted the standard, involved the
>persistency of blue paint, and the prohibition of multiple definitions
>of an external function when the function never occurs in an expression.
The other items in my meeting summary posting were not official
interpretation rulings, but a combination of answers to informal
letters and results of discussions about issues raised by members
of X3J11. (For example, I collected a bunch of e-mail discussing
issues about which I wasn't entirely sure of the correct answers,
and took it to the meeting for discussion by one of the subgroups
formed to draw up responses to both formal and informal questions.)
"Blue paint persists" really IS a literal reading of the standard
(3.8.3.4). It was reaffirmed that yes, we really meant that, and
that if it had been intended that the blue paint evaporate at some
point there would have been an additional statement in the standard
to that effect.
3.7 Semantics says:
If an identifier declared with external linkage is used in
an expression (other than as part of the operand of a sizeof
operator), somewhere in the entire program there shall be
exactly one external definition for the identifier;
otherwise, there shall be no more than one.
The last clause was added editorially in the process of preparing
the final document for ANSI, and was ratified unanimously by X3J11
as such. It was deemed a simple oversight, fixed in the final
standard.
More information about the Comp.std.c
mailing list