>Везде во всем
>ранее написанном коде позаменял нафиг все long на int и все
>сразу заработало как надо.Молодца, продолжаем учится:
1) читаем МЕГА полезную ссылку про портирование на 64 бита:
http://www-128.ibm.com/developerworks/linux/library/l-port64...
2) есть полезный файл stdint.h
содержит определения типов гарантированно имеющих нужный размер:
int8_t, int16_t, int32_t, int64_t и т.п. и соответствующие unsigned.
везде где только можно используем именно их. Никаких int или long, т.к. завтра наткнетесь на платформу с sizeof(int) == 8 и снова пляски с бубном.
3) перечитываем С/С++ стандарты, отмечаем что типы int, long, char и т.п. определены не как равные столько то байт (char=1), а как больше(!!!) или равно (char >= 1). Чтоб знать какие еще сюрпризы нас ждут.
Удачи.