As I've learned recently, a long
in C/C++ is the same length as an int
. To put it simply, why? It seems almost pointless to even include the datatype in the language. Does it have any uses specific to it that an int
doesn't have? I know we can declare a 64-bit int
like so:
long long x = 0;
But why does the language choose to do it this way, rather than just making a long
well...longer than an int
? Other languages such as C# do this, so why not C/C++?
When writing in C or C++, every datatype is architecture and compiler specific. On one system int is 32, but you can find ones where it is 16 or 64; it's not defined, so it's up to compiler.
As for long
and int
, it comes from times, where standard integer was 16bit, where long
was 32 bit integer - and it indeed was longer than int
.