.. highlight:: cpp .. _lang-longlong: ``long long`` ============= The ``long long`` data type stores extended size integer values. You can use a ``long long`` when your values are too large to fit into an :ref:`int `. A ``long long`` occupies 8 bytes of memory. This yields a range of approximately -9.2×10^18 to 9.2×10^18 (that's 9.2 billion billion, or about 92 million times the number of stars in the Milky Way galaxy). The exact range of a ``long long`` on the Maple is from -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807, or -2^63 to (2^63-1). A ``long long`` it is subject to the same :ref:`overflow issues ` as any numeric data type. A synonym for the ``long long`` type is ``int64``. Here's an example of declaring a long long (see :ref:`integer constants ` for an explanation of the "LL" at the end of the number):: // Speed of light in nanometers per second (approximate). long long c = 299792458000000000LL; The general syntax for declaring an ``long long`` variable named ``var``, then giving it value ``val``, looks like:: long long var = val; This is identical to the ``int`` syntax, with ``long long`` (or, at your option, ``int64``) replacing ``int``. Note that ``long long`` values will still :ref:`overflow `, just like ``int`` values, but their much larger range makes this less likely to happen. The downside to using a ``long long`` instead of an ``int`` (besides the extra storage) is that :ref:`arithmetic ` operations on ``long long``\ s will take slightly longer than on ``int``\ s. See Also -------- - :ref:`char ` - :ref:`unsigned char ` - :ref:`int ` - :ref:`unsigned int ` - :ref:`unsigned long long ` - :ref:`Integer Constants ` - :ref:`Variables ` .. include:: /arduino-cc-attribution.txt