【发布时间】:2020-12-07 19:24:51
【问题描述】:
6.4.4.4/10 ...如果整数字符常量包含单个字符或转义序列,则其值是转换具有单个字符或转义序列的值的 char 类型的对象时产生的值输入 int。
我无法理解这一段。本段标准后给出如下示例:
示例 2:考虑使用二进制补码表示的实现 char 类型的对象的整数和 8 位。在一个 char 类型具有与 有符号字符,整数字符常量 '\xFF' 的值为 -1; 如果 char 类型具有与 unsigned char 相同的值范围,则 字符常量 '\xFF' 的值是 +255。
我从表达式中了解到:“char 类型的对象的值”是我们在解释 char 类型的对象内容时得到的值。但是当我们看这个例子时,就像用纯二进制符号谈论对象的值一样。我的理解错了吗?对象的值是否总是意味着该对象中的位?
【问题讨论】:
-
能否提供整篇文章的链接?
-
你可以在 C11 标准的 6.4.4.4 的第 10 段找到它。
-
你想做什么?
-
我试图理解这些段落的确切含义。也许那里有一些我们无法理解的意图,有经验的人会来解释它,我们可以学到非常有趣的东西。在示例 2 中,他们将整数字符常量
'\xFF'中的十六进制数视为 char 对象表示的纯二进制解释,这对我来说有点有趣。
标签: c language-lawyer c11