If you\'ve used Memcheck (from Valgrind) you\'ll probably be familiar with this message...
Conditional jump or move depends on uninitialized value(s)<
In 64-bits machine. Usually, int takes 4 bytes in memory. But long will take 8 bytes in memory. So simply refer an int value as long format will cause totally incorrect result. An convert is needed in this situation.