machine dependent type

this is why dangerous use default C type

image

unsigned long is 8 byte wide (on x64), but 32 bit wide (on x86 arch).