Hi Ed,
Largest signed `long long' is a bit pattern where all bits are set
except the most significant bit:
#define LL_MAX \
((long long)((1ULL<<(8*sizeof(long long)-1))-1))
Largest unsigned long long is all bits set. In other words, the
stuff above bit-ORed with the most significant bit:
#define ULL_MAX \
((unsigned long long)LL_MAX | (1ULL<<(8*sizeof(long long)-1)))
This will work for any size of these datatypes as long as
sizeof(unsigned long long)==sizeof(long long).
You could also use the constants LLONG_MAX, LLONG_MIN, and ULLONG_MAX
from <limits.h>.
>>>>> "Ed" == Ed Hartnett <ed@xxxxxxxxxxxxxxxx> writes:
Ed> Howdy all!
Ed> What is the maximum long long on different platforms. Anyone know?
Ed> In my header I have:
Ed> #define X_INT64_MAX ((nc_int64)9223372036854775804)
Ed> This gives me an error on AIX:
Ed> "nc4hdf.c", line 2558.31: 1506-207 (W) Integer constant
Ed> 9223372036854775804 out of range.
Ed> Is there some standard way of determining what the largest signed and
Ed> unsigned 64-bit int is?
Ed> I figure one of you HDF5 people must know, since you have probably had
Ed> the same problems.
Ed> Thanks!
Ed> --
Ed> Ed Hartnett -- ed@xxxxxxxxxxxxxxxx
--
Robb Matzke L-159 | Ph: 812-967-6325 | I/O, I/O, it's off to disk we go,
Lawrence Livermore | Fax: 812-967-6326 | A gigabyte to read or write,
National Laboratory | Hrs: 3am-11am PDT | I/O, I/O.