Re: gcc: why is "abcdef"[3] not a constant (error: initializer element is not constant)

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

 



    m-h-l,

Your expression just doesn't make any sense in C; therefore it would be very bad for whatever C compiler to give it one.

Please, I don't want to know what it could mean in C++. Maybe you are a victim of the old statement that "C++ = C plus the class". But the two languages have started to diverge from the beginning, maybe two decades ago.

You are not going to write working C programs by assuming that "C = C++ minus the class". You should better start from scratch with a C handbook.

    Didier

Le 08/05/2015 15:34, m-h-l a écrit :
I guess you refer to this part of the standard:

"The array-subscript [] and member-access . and -> operators, the address &
and indirection * unary operators, and pointer casts may be used in the
creation of an address constant, but the value of an object shall not be
accessed by use of these operators."

Funny thing is that g++, ArmC and ICC do not have a problem with "abcdef"[3]
as an initializer.
So I wonder what shall be the sense to forbid this in gcc.
This way I cannot use gcc to calculate e.g. CRCs or Hashs over real constant
things at build time without extra tools, even not in such a clear case as
here. With the other compilers its no problem.

What a pity!



--
View this message in context: http://gcc.1065356.n5.nabble.com/gcc-why-is-abcdef-3-not-a-constant-error-initializer-element-is-not-constant-tp1146945p1147037.html
Sent from the gcc - Help mailing list archive at Nabble.com.







[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