我今天学到了C99和C ++中的有向图。以下是有效的计划:

%: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 ++需要表达整个语言。

此外,它还为 IOCCC 提供了良好的参赛作品。

我认为这是因为这个星球上的某些键盘可能没有'#'和'{'等键。

c / c ++中的有向图和三字图来自CDC6000(60位),Univac 1108(36位),DECsystem 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中的代码点被指定为国家替代字符 - 最明显的例子是Britsh Pound的#符号(显而易见,因为#字符的名称是<!>“;符号<!>”;从它在美国商业中的常规用法 - 在Twitter的演变之前)和'{''}'也被指定作为国家替代人物。因此,引入有向图以便为那些不能表示字符的计算机系统提供机制,并且还为数据终端设备提供机制,该数据终端设备将国家替换字符分配给冲突的代码点。 Di / Tri-graphs已经成为计算历史的古老工件(这些天没有在计算机科学中教授过) - 关于这个主题的详尽论文可以在这里找到: rep = rep1 <!> type = pdf“rel =”noreferrer“> http://citeseerx.ist.psu.edu/viewdoc/download?doi = 10.1.1.96.678 <!> amp; rep = rep1 <!> amp; type = pdf

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top