* Tom Karzes <karzes@sonic.net> [Mar 29. 2014 08:31]:
No, in gcc a "long" is 32-bits.
Not on a 64 bit system.
That's why they introduced "long long", to support a 64-bit integer type without introducing compatibility problems or new keywords.
... on 32 bit systems. (Sadly "long long" was _not_ promoted to 128 bits on any 64 bit system, bad!).
The C standard requires only that "long" be at least 32 bits. At this point I would say gcc is the de facto reference implementation of C, and I would hardly call its creators imbeciles.
I was talking about a certain Redmond based platform (requiring "unsigned long long" to get a full CPU register). The C standard mandates that char <= short <= int <= long <= long long and minimum ranges (yes, long >= 32 bit by that), see http://stackoverflow.com/questions/589575/size-of-int-long-etc
Tom
[...]
Best regards, jj