support long&unsigned long type