gpt4 book ai didi

c - 包含不可表示字符的三字母的字 rune 字的含义

转载 作者:太空狗 更新时间:2023-10-29 15:26:34 25 4
gpt4 key购买 nike

在使用 ASCII 作为其字符集的 C 编译器上,字 rune 字的值 '??<'将等同于 '{' ,即 0x7B。在字符集没有 { 的编译器上,该文字的值是多少?性格?

在字符串文字之外,编译器可以推断出 ??<应该与左大括号字符的定义具有相同的含义,即使编译器字符集没有左大括号字符。事实上,三字母的全部目的是允许使用可表示字符的序列来代替不可表示的字符。然而,规范要求三字母甚至在字符串文字中进行处理,这让我感到困惑。如果编译器的字符集包含 {字符,编译器可以允许 '{'表示为 '??<' , 但字符集包括 {我认为程序员没有理由不简单地使用它。如果字符集不包含 { , 然而,这似乎是首先使用三字母的唯一原因,编译器应该替换什么可表示的字符 ??<与?

最佳答案

What would be the value of that literal on a compiler whose character set doesn't have a { character?

没有这样的(符合标准的)编译器。 {基本源字符集的一部分(C99 中的5.2.1/3[lex.charset]/1 在 C++11 中)。 基本执行字符集(程序在运行时使用的字符集)应至少包含基本源字符集的所有成员(相同的5.2.1/3在 C99 中,[lex.charset]/3 在 C++11 中)。

正如@Mankarse 指出的那样,发明三字母并不是为了支持缺少某些字符的编译器(同样,没有这样的编译器),而是为了支持人类在缺少输入这些字符所需的键的键盘上打字。

关于c - 包含不可表示字符的三字母的字 rune 字的含义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25497963/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com