From: Ullrich von Bassewitz (uz_at_musoftware.de)
Date: 2003-03-06 13:03:54
On Wed, Mar 05, 2003 at 09:34:58PM +0200, Marko Mäkelä wrote:
> I too thought that the braces are only allowed when initializing an
> array, struct or union ("union { int x, char* y } a = {0}" would
> assign a.x = 0; it's always the first component of the union).
Just looked it up in the standard (6.7.8 Initialization): It does not only
allow any number of nested, matching curly braces. Even a trailing comma is
allowed! So
unsigned a = {{{{ 3, },},},};
is legal C. gcc will print a warning if more than one level of curly braces is
present for scalar initializers, but it's just a warning, even with when
compiling -ansi. Which is correct, because it's weird but legal:-)
Regards
Uz
--
Ullrich von Bassewitz uz_at_musoftware.de
----------------------------------------------------------------------
To unsubscribe from the list send mail to majordomo_at_musoftware.de with
the string "unsubscribe cc65" in the body(!) of the mail.
This archive was generated by hypermail 2.1.3 : 2003-03-06 13:04:01 CET