* Alessandro Pellizzari <alex amiran it> wrote:
> Hi all,
>
> today I stumbled upon a strange behaviour. I would like to know if it is
> expected or not:
>
> using GLib;
> public class Main : Object {
> static int main (string[] args) {
> stdout.printf ("uint.min => %i\n", uint.MIN);
> stdout.printf ("uint.max => %i\n", uint.MAX);
> stdout.printf ("ulong.min => %i\n", ulong.MIN);
> stdout.printf ("ulong.max => %i\n", ulong.MAX);
> stdout.printf ("uint32.min => %i\n", uint32.MIN);
> stdout.printf ("uint32.max => %i\n", uint32.MAX);
> stdout.printf ("int64.min => %i\n", int64.MIN);
> stdout.printf ("int64.max => %i\n", int64.MAX);
> stdout.printf ("uint64.min => %i\n", uint64.MIN);
> stdout.printf ("uint64.max => %i\n", uint64.MAX);
> }
> }
>
> This code gives:
>
> uint.min => 0
> uint.max => -1
> ulong.min => 0
> ulong.max => -1
> uint32.min => 0
> uint32.max => -1
> int64.min => 0
> int64.max => -1
> uint64.min => 0
> uint64.max => -1
>
> The other values are OK and showing expected boundaries.
> I am using vala 0.1.7
That is because %i is just a regular `int'. You should use the following
code:
| using GLib;
| public class Main : Object {
| static int main (string[] args) {
| stdout.printf ("uint.min => %u\n", uint.MIN);
| stdout.printf ("uint.max => %u\n", uint.MAX);
| stdout.printf ("ulong.min => %lu\n", ulong.MIN);
| stdout.printf ("ulong.max => %lu\n", ulong.MAX);
| stdout.printf ("uint32.min => %lu\n", uint32.MIN);
| stdout.printf ("uint32.max => %lu\n", uint32.MAX);
| stdout.printf ("int64.min => %lld\n", int64.MIN);
| stdout.printf ("int64.max => %lld\n", int64.MAX);
| stdout.printf ("uint64.min => %llu\n", uint64.MIN);
| stdout.printf ("uint64.max => %llu\n", uint64.MAX);
| }
| }
Output:
| uint.min => 0
| uint.max => 4294967295
| ulong.min => 0
| ulong.max => 4294967295
| uint32.min => 0
| uint32.max => 4294967295
| int64.min => -9223372036854775808
| int64.max => 9223372036854775807
| uint64.min => 0
| uint64.max => 18446744073709551615
Be sure to read `man 3 printf'.
--
Ed Schouten <ed fxq nl>
WWW: http://g-rave.nl/
Attachment:
pgpiowv7m1vQW.pgp
Description: PGP signature