一个号码后面的字母有什么意义?例如,primitive types in Java的波纹管表格在long float和double的默认值之后有字母。
我测试过,据我所知,他们从未有所作为。我也在C和C ++中看到过这样的事情,例如NULL
宏有时如何扩展到0L
。
答案 0 :(得分:1)
它确实有所作为。这取决于你的价值观。
首先,除非您指定int
(或L
)后缀,否则Java将treat all integral declarations作为l
。
这意味着,虽然此声明无效:
System.out.println(5_000_000_000_000); // too large for an int
...此声明将:
System.out.println(5_000_000_000_000L);
除非您指定double
或f
,否则Java也会treat all floating-point declarations作为F
。您也可以指定d
或D
,但这是一个可选的隐含声明,表明您的文字类型为double
。
另一个例子:虽然这个声明对于double
是有效的:
System.out.println(1.17e200);
......这个不是:
float f = 1.17e200f; // too large
其他语言(C,C ++)的行为将特定于您正在使用的标准,但它不是完全您正在考虑的内容 - 宏只是一个预编译器文本替换,因此无论编译器看到NULL
,它都会用0
替换它。