Ответ 1
LL
делает целочисленный литерал типа long long
.
So 2LL
, является 2 типа long long
.
Без LL
литерал будет иметь тип int
.
Это имеет значение, когда вы делаете такие вещи:
1 << 40
1LL << 40
Только с буквальным 1
(предполагая, что int
будет 32-битным, вы смещаетесь за пределы размера целочисленного типа → undefined).
С помощью 1LL
вы устанавливаете тип long long
перед рукой, и теперь он будет правильно возвращать 2 ^ 40.