Knowledge point 1
C++ only allows displacement of 1 to 31 bits, so it is estimated for C. I don't know whether it is equivalent to other languages, or it is from the compiler-it is not clear why and the scope of influence.
Knowledge point 2
For cross-type compilation, you must be careful,
such as: long long int = int *int——long long int = (int)1<<31 * (int)1<<31; will cause an error.