What is 1LL or 2LL in C and C++?

前端 未结 1 1225
情话喂你
情话喂你 2020-12-07 16:07

I was looking at some of the solutions in Google Code Jam and some people used this things that I had never seen before. For example,

2LL*r+1LL
相关标签:
1条回答
  • 2020-12-07 16:34

    The LL makes the integer literal of type long long.

    So 2LL, is a 2 of type long long.

    Without the LL, the literal would only be of type int.

    This matters when you're doing stuff like this:

    1   << 40
    1LL << 40
    

    With just the literal 1, (assuming int to be 32-bits, you shift beyond the size of the integer type -> undefined behavior). With 1LL, you set the type to long long before hand and now it will properly return 2^40.

    0 讨论(0)
提交回复
热议问题