Hello
I've read here that only C language has a standard 64bit integer.
No, C has defined the signed and unsigned 'long long' integer types
that must contain at least 64 bits, but could have more.
But it is not "only C", just merely not C++. Java, for example, has
exact-width 64-bit integer types, as do some other languages.
Can you please tell me what are the reasons for this ? What is special about
C language ?
Most of the things that are special about C have nothing at all to do
with this.
As for the reasons, disk drives today cost less than $1.00USD per
gigabyte of storage. It is not even uncommon in some types of
applications to have files containing more than 32 bits worth of
octets.
On a busy trading day, the NASDAQ stock exchange can trade more shares
than can be counted in a signed 32-bit integer type, and the NASDAQ
and AMEX together more than can be counted in an unsigned 32-bit
integer.
Computers today, even 32-bit ones not to mention 64-bit ones, can
easily have enough memory that they can have arrays larger than 2^32
bytes in size, so there must be signed and unsigned integer types
large enough to be size_t and ptrdiff_t for these to work.
Just to name a few situations where an integer type with a width
greater than 32 bits is needed.
The real question is why the C++ standard, being finalized not too
much before the 1999 major update to the C standard, did not include
the 'long long' type or indeed all of the expansions to the integer
types that C added in 1999.