Re: compiler warning about literal

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

 



On 17 November 2014 16:22, Luchezar Belev <lukcho@xxxxxxxxx> wrote:
> hi,
>
> when i try to compile this c code:
> long long t = 2684354560;
> gcc (version 4.8.2) says: " ...warning: this decimal constant is
> unsigned only in ISO C90 [enabled by default]"
>
> i added the option -std=C90 but i still get the same warning.
> Is there a way one can get rid of this warning (other than adding the
> "u" suffix to the literal, which i can't do for complicated reasons
> that are beyond this question)

The right thing to do is use an ll suffix.

long long t = 2684354560ll;



> I wonder why does gcc give such warning at all given that in either
> standard the literal decimal number  "2684354560" is valid:
>  a) in ISO C90 it will be interpreted as unsigned long and
>  b) in ISO C99 it will be interpreted as signed long long

The fact it means different things in different cases is why you get a warning.




[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