The ARM compiler supports 64-bit integer types through the
type specifiers long long and unsigned long long.
They behave analogously to long and unsigned
long with respect to the usual arithmetic conversions.
a synonym for long long.
Integer constants can have:
llsuffix to force the type of the constant to long long, if it fits, or to unsigned long long if it does not fit
llusuffix to force the type of the constant to unsigned long long.
ll to specify that the following conversion
applies to a long long argument, as in
Also, a plain integer constant is of type long long or unsigned long long if its value is large enough. There is a warning message from the compiler indicating the change. For example, in strict 1990 ISO Standard C 2147483648 has type unsigned long. In ARM C and C++ it has the type long long. One consequence of this is the value of an expression such as:
2147483648 > -1
This expression evaluates to 0 in strict C and C++, and to 1 in ARM C and C++.
The long long types are accommodated in the usual arithmetic conversions.