Some how I though long is 8 bytes (64 bits) and int is 4 bytes (32 bits). I
wonder what is the reason for long and int types if they both are 4 bytes

"Scott Klement" <c400-l@xxxxxxxxxxxxxxxx> wrote in message
Hi Lim,

Because 2147483647 is the highest number that can be stored into a 'long'
variable in C. A 'long' is a 32-bit integer (10i 0 in RPG) and therefore
can support values from -2147483648 to 2147483647

Since 6027461692 is too high to fit in a 'long', it gives you the highest
that WILL fit.

On 1/29/2010 3:58 PM, Lim Hock-Chai wrote:
does anyone know why the result of this atol is 2147483647?


int main(void) {

long num;
char *sBuf;

sBuf = "6027461692 ";
num = atol(sBuf); //=> why would this result in 2147483647?

This thread ...


Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2019 by and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].