Ste*_*non 10
在C语言中,0xfe是十六进制int文字.具体来说,它等于254,所以结果是双精度值ceil(x) + 254.0.
如果您显式转换为int8_t或另一个8位有符号类型,如下所示:
(int8_t)0xfe
Run Code Online (Sandbox Code Playgroud)
然后你可能得到值-2,但标准不保证这一点.这是因为0xfe具有值254,这在有符号的8位字段中是不可表示的,因此该标准的第6.3.1.3节中的最后一条规则适用:
否则,新类型将被签名,并且值无法在其中表示; 结果是实现定义的,或者引发实现定义的信号.
如果你想要这个值-2,请写-2.