Why are there digraphs in C and C++?
今天我学到了C99和C++中的有向图。以下是有效的程序:
1 2 3 4 5 6 7 8 9 10 11 12 13 | %:include <stdio.h> %:ifndef BUFSIZE %:define BUFSIZE 512 %:endif void copy(char d<::>, const char s<::>, int len) <% while (len-- >= 0) <% d<:len:> = s<:len:>; %> %> |
我的问题是:它们为什么存在?
有向图是为没有支持ISO 646字符集的键盘的程序员创建的。
http://en.wikipedia.org/wiki/c_Trigraph(维基百科)
我相信,它们的存在可以追溯到某个地方,有人使用一个编译器,操作系统的字符集是如此古老,以至于它不一定有C或C++所需要的所有字符来表达整个语言。
此外,它还可以在IOCC中创建良好的条目。
我认为这是因为这个星球上的一些键盘可能没有像""和""这样的键。
C/C++中的有向图和三叉图来自CDC6000(60位)、UNIVAC 1108(36位)、DECPLASE 10和20系统(36位)所使用的六位字符集的每一天,每一个都使用专有的64字符集,不兼容ASA X3.4-1963(现在称为ANSI X3.4-1963)7位美国信息标准国家间代码。更改""。最新版本为ANSI X3.4-1986。由于这些系统无法表示96个图形代码点中的所有代码点,因此省略了许多代码点。此外,X3.4与其他国家标准机构(GBR、GER、ITA等)进行了协调,在X3.4中有代码点被指定为国家替换字符-最明显的例子是英国镑符号(很明显,因为在美国公司中,该字符的名称是"镑符号")。商业-在Twitter发展之前)和""""也被指定为国家替换字符。因此,引入了有向图,为那些不能表示字符的计算机系统提供了一种机制,也为数据终端设备提供了一种机制,这些设备将国家替换字符分配给相互冲突的代码点。Di/Tri图形已经成为计算历史的古老产物(这是计算机科学领域目前没有教授的一门学科)-关于这门学科的详尽论文可以在这里找到:http://citeserx.ist.psu.edu/viewdoc/download?doi=10.1.1.96.678&rep=rep1&type=pdf