0LL或0x0UL是什么意思?

本文详细介绍了C和C++语言中用于指定数值和字符串数据类型的后缀,例如0LL、1ULL及各种浮点数后缀,并解释了这些后缀如何帮助开发者明确数据类型,避免类型转换引发的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

0LL是C和C ++中的常量。后缀LL表示常量的类型为long long。

1ULL表示类型为unsigned long long的常数1。

这种规则同样也适用于浮点数:

1.0f 表示类型为float的浮点数1.0。
1.0  表示类型为double的浮点数1.0。
1.0L表示类型为long double的浮点数1.0。

使用于字符串和字符,但它们是前缀:

 'A'   // of type 'char'
L'A'   // of type 'wchar_t'
u'A'   // of type 'char16_t' (C++0x only)
U'A'   // of type 'char32_t' (C++0x only)

wchar_t数据类型一般为16位或32位,但不同的C或C++库有不同的规定,如GNU Libc规定wchar_t为32位,总之,wchar_t所能表示的字符数远超char型。

在C和C ++中,整数常量使用其原始类型求值,这可能会由于整数溢出而导致错误:

 当我们改为long long类型后就不会溢出了

而下面这种写法可以确保乘法是按long long 类型进行的

示例:

需要特别注意的是LL将文字指定为long long,UL将一个文字指定为unsigned long,而0x0是0的十六进制。因此0LL和0x0UL是等效数字,但数据类型不同;前者是long long,后者是unsigned long。 

0LL是一个长的长零。

0x0UL是一个无符号长零,使用十六进制表示法表示。 0x0UL == 0UL。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值