L在“<any hex =”“number =”“> L”</any>中表示什么

时间:2014-04-06 10:35:25

标签: c++ hex

我正在查看一些c ++代码,我发现了这个:

if( (size & 0x03L) != 0 )
    throw MalformedBundleException( "bundle size must be multiple of four" );

十六进制值后L代表什么?

它如何改变值0x03

3 个答案:

答案 0 :(得分:7)

这意味着长,如文字0x03L的类型是long而不是默认的int。在某些平台上,这意味着64位而不是32位,但这完全取决于平台(唯一的保证是long不短于int)。

答案 1 :(得分:6)

此后缀设置数字文字的类型。 L代表long; LL代表long long类型。该数字不需要是十六进制 - 它也适用于小数和八进制。

3LL  // A decimal constant 3 of type long long
03L  // An octal constant 3 of type long
0x3L // A hex constant 3 of type long

答案 2 :(得分:1)

它表示所谓的整数文字的长后缀,表示文字的类型为int long示例中的整数文字是类型为int long的十六进制整数文字。 您还可以遇到两个LL(或ll),表示类型int long long