What is the difference between an int and a long in C++?

int is 4 bytes,
long is 4 bytes,

What is the difference in C++?
Can they be used interchangeably?

It dependents on implementation

rules for the Intel C++ compiler on variable platforms. To summarize:

OS arch size
Windows IA-32 4 bytes
Windows Intel 64 4 bytes
Windows IA-64 4 bytes
Linux IA-32 4 bytes
Linux Intel 64 8 bytes
Linux IA-64 8 bytes
Mac OS X IA-32 4 bytes
Mac OS X Intel 64 8 bytes