在我读过的所有C ++样式指南中,我从未见过有关数字文字后缀的任何信息(即3.14f
,0L
等)。
问题
是否有任何风格指南可以讨论这些用法,或者是否有一般惯例?
我偶尔会在图形编程中遇到f
后缀。在编程领域的类型中是否存在使用趋势?
答案 0 :(得分:8)
我所知道的唯一已建立的惯例(有些已确立)始终使用L
而不是l
,以避免被误认为是1
。除此之外,它几乎是在您需要时使用您需要的东西。
另请注意,C ++ 11允许用户定义的文字具有用户定义的后缀。
答案 1 :(得分:4)
我找不到一般风格指南。我使用大写字母,我很挑剔使用F表示浮点文字而L表示长双精度。我还使用适当的后缀来表示整数文字。
我假设您知道这些后缀的含义:3.14F
是float
字面值,12.345是双字面值,6.6666L是长双字面值。
对于整数:U
为unsigned
,L
为long
,LL
为long long
。 U
和L
之间的顺序并不重要,但我总是放UL
,因为我声明了这样的变量unsigned long
。
如果为一种类型的变量指定另一种类型的文字,或者为另一种类型的函数参数提供一种类型的数字文字,则必须进行强制转换。使用正确的后缀可以避免这种情况,并且与static_cast在调用强制转换时非常有用。数字文字后缀的一致使用是很好的风格,避免了数字意外。
人们对于大小写是否最好是不同的。选择一种看起来不错的风格并保持一致。
答案 2 :(得分:0)
用于C ++ 03语言的MISRA C ++ 2008在规则M2-13-3中规定(至少,如本Autosar document所述)
后缀“ U” 适用于所有八进制或十六进制 无符号类型的整数文字。
链接的文档也与JSF-AV 2005和HIC ++ v4.0相比,所有这四个标准要求后缀均为大写。
尽管如此,我找不到一条规则(但我手头没有MISRA C ++的纸质副本)指出要在需要时使用后缀。但是,IIRC在MISRA C ++中只有一个(或者可能只是我以前的公司编码准则……)
答案 3 :(得分:-1)