Re: what's this syntax ?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi, John,

Thanks for reply and the information is very helpful.

However, to clarify a bit, I don't think it's a valid C99 code. According to gcc manual, http://gcc.gnu.org/onlinedocs/gcc-4.1.2/gcc/Designated-Inits.html#Designated-Inits
..

To initialize a range of elements to the same value, write `[first ... last] = value'. This is a GNU extension. For example,

    int widths[] = { [0 ... 9] = 1, [10 ... 99] = 2, [100] = 3 };
..



Thanks.



Mike



----- Original Message ----- From: "John Love-Jensen" <eljay@xxxxxxxxx> To: "Michael Gong" <gonwg@xxxxxxxxxxx>; "MSX to GCC" <gcc-help@xxxxxxxxxxx>
Sent: Wednesday, March 28, 2007 9:19 AM
Subject: Re: what's this syntax ?


Hi Michael,

I think the '...' is called an ellipsis in the array initializer.

So you can do something like:

int array[10] = { [4] = 9, [1 ... 2] = 88, [7 ... 9] = 1 };

It's valid C99 code.

IIRC, it's *NOT* valid C90 or C++98 code. (I'm not sure if GCC provides
convenience extensions that you may have to disable in a C90 or C++98
environment.)

You may find this output of interest:

gcc -S test.c
cat test.s

HTH,
--Eljay




[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux