string is const char [] ?

Kaz Kylheku kaz@espresso.cafe.net
Thu Jun 25 09:19:00 GMT 1998


On Wed, 24 Jun 1998, Richard Henderson wrote:

> On Wed, Jun 24, 1998 at 03:07:30PM +0200, Kamil Iskra wrote:
> > Don't get me wrong, I'm sure you know the standard far better than I do,
> > but are you SURE that it disallows this initialisation syntax?
> 
> For non-constant static or file-scope variables, the "" form is
> legal.  For automatic variables, it is not.
> 
> > I find it
> > hard to believe, since first, I think this syntax is very common (at least
> > I use it quite often), and second, this syntax is fine in C,
> 
> Well, gcc provides the "" form for automatic variables as an extension.
> I wish it did not, for I often find folks initializing things at runtime
> taking up hordes of .text space, when they weren't intending to.

To clarify, you mean that:

	{
		char x[] = "abcd";

	}

is wrong? That is perfectly valid C. But it does potentially take up
.text space, since the compiler will likely store the "abcd" string
literal there and generate a copy operation.






More information about the Gcc-bugs mailing list