>>981
int* p = (long int)0; // NG
int* p = (unsigned int)0; // NG

long, unsigned は、int 型と、数値の範囲が異なる。
int 型しかキャストできないのでは?