NonConfidential  PDF version  ARM DUI0472J  


Home > Language Extensions > long long 
The ARM compiler supports 64bit 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.