【发布时间】:2020-02-11 23:56:42
【问题描述】:
signed char a = 128;
假设一个字节是8位,这是未定义的吗?
我所知道的是,将超出范围的值分配给有符号类型是未定义的,但 Bjarne Stroustrup 在 C++ 编程语言中说,如果我将整数 255 分配给 8 位字节机器上的 char,其中 char 已签名结果是-1。
【问题讨论】:
-
来源:C++ 编程语言 - 第 4 版 - 6.2.3.1 有符号和无符号字符 - 第 142 页
-
它是实现定义的(编译器必须记录行为)
标签: c++ type-conversion