You copied the Doc URL to your clipboard.

long long

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. __int64 is a synonym for long long.

Integer constants can have:

  • an ll suffix to force the type of the constant to long long, if it fits, or to unsigned long long if it does not fit

  • a ull or llu suffix to force the type of the constant to unsigned long long.

Format specifiers for printf() and scanf() can include ll to specify that the following conversion applies to a long long argument, as in %lld or %llu.

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.

See also