Many sources, including Microsoft, reference both the int and long type as being 4 bytes and having a range of (signed) -2,147,483,648 to 2,147,483,647. What is the point of
The C++ Language Specification simply states that the size of a long must be at least the size of an int.
It used to be standard to have int = 2 bytes and long = 4 bytes. For some reason int grew up and long stayed the same (on Windows compilers at least). I can only speculate that long was kept the same for reasons of backwards compatibility...