Making Arduino use AMD64-sized integer type

I have an existing code that uses a bunch of int and long. I wish to make int 4B and long 8B, which I know is not the case with Arduino. Now, I can probably change all int to long and long to long long by hands, but I do not want to do that since I have to change code involving strol, atoi as well. Is there a quick and easy way to do this?

I wish to make int 4B and long 8B,

On what architecture is a "long" eight bytes?

Edit: 64 bit Intel/AMD, ok.

You may want to change the title of the thread - there is no "standard" - it depends on the platform

One of the big mistakes that K&R made when designing the C language was this idea of using whatever size is native for the platform.

tx9200: I have an existing code that uses a bunch of int and long. I wish to make int 4B and long 8B, which I know is not the case with Arduino. Now, I can probably change all int to long and long to long long by hands, but I do not want to do that since I have to change code involving strol, atoi as well. Is there a quick and easy way to do this?

You better use the 'new' types int16_t/uint16_t, int32_t/uint32_t or int64_t/uint64_t instead of the 'old' types "int', 'long' and 'long long'.

The 'new' types are available with AVR/GCC and so they are with Arduino. See. http://www.nongnu.org/avr-libc/user-manual/group__avr__stdint.html

Though int64_t/uint64_t has a very limited support by the compiler. Only basic math is working with these types. And this is slow, slow, slow.

If you need other functions like "print" or any other conversion to or from char array, you'd have to write those routines by yourself to work with int64_t/uint64_t.