我声明了long long类型的变量并将其分配给它LLONG_MIN
,但不允许这样做。
ft_long_long_to_ascii_base.c:23:14:错误:整数常量太大,以至于它是无符号的[-Werror]
if (val == -9223372036854775808)
默认情况下,整型常量的类型为int
,但正如警告所示,9223372036854775808
它不适合int
。的-
是不恒定的一部分,它是一个一元运算符(因此,不存在负整数常量)。要使类型为整数常量long long int
,请在您的整数常量后缀LL
:
出现警告9223372036854775808
是因为太大而无法将along long
作为后缀十进制整数常量可以假定的最大类型(请参阅ISO 9899:2011§6.4.4.1¶5)。该-
其实不是常量的一部分,它是适用于正整数常量一元运算符。
LLONG_MIN
因此,提及的值非常棘手,第二种最佳方法(除了使用中的常量limits.h
)是执行以下操作:
-9223372036854775807 - 1
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句