🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.std.c
Article #489

Weird identifier declaration

#489
From: Nigel Holder
Date: Wed, 23 Aug 1989 12:54
39 lines
1379 bytes
Reading the ANSI spec closely I found the following weird case that
enables the declaration of identifiers *after* assignment statements
within the same block by using 'sizeof (type-name)'.

The best way to illustrate this is with an example :-

int main (void)

{
	int	a;

	a = 3;

	(void) sizeof (enum colour {red, green, blue});

	printf ("red = %d, green = %d, blue = %d\n", red, green, blue);
}

The behaviour is similar to :-

int main (void)
{
	...
	{
		enum  colour {red, green, blue};

		printf ( ...
	}
}

I guess the question is was this intentional ?

(just for record you can also use the following instead of sizeof () :
	a = (enum colour {red, green, blue})3;
as well !).

Nigel Holder,  INMOS Limited  |  mail[uk]: nigel@inmos.co.uk or ukc!inmos!nigel
1000 Aztec West, Bristol, UK  |      [us]: uunet!inmos-c!nigel
Phone: +44 454  616616 x508   |  Internet: @col.hp.com:nigel@inmos-c
Technical Details
Message-ID: <1898@brwa.inmos.co.uk>
Path: arc1-ca.pugleaf.net!utzoo!attcan!utgpu!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!gem.mps.ohio-state.edu!ginosko!uunet!mcsun!ukc!inmos!wraxall!nigel

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!attcan!utgpu!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!gem.mps.ohio-state.edu!ginosko!uunet!mcsun!ukc!inmos!wraxall!nigel
From: nigel@wraxall.inmos.co.uk (Nigel Holder)
Newsgroups: comp.std.c
Subject: Weird identifier declaration
Message-ID: <1898@brwa.inmos.co.uk>
Date: 23 Aug 89 12:54:45 GMT
Sender: news@inmos.co.uk
Reply-To: nigel@inmos.co.uk ()
Organization: INMOS Limited, Bristol, UK.
Lines: 39