use __LP64__ to adjust 64 and 32bit