我今天了解到,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:>;
%>
%>
我的问题是:为什么它们存在?
我今天了解到,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:>;
%>
%>
我的问题是:为什么它们存在?
and
和or
)。这是一种更有用的形式,具有更多的赞誉。编辑:应该是以下内容的副本:stackoverflow.com/questions/1234582/…而是。
:-)
Answers:
有向图是为不具有支持ISO 646字符集的键盘的程序员创建的。
我认为它们的存在可以追溯到某处某人正在使用带有操作系统的编译器的可能性,该操作系统的字符集是如此陈旧,以致于它不一定具有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中有一些代码点被指定为国家替换字符-最明显的例子是#的英镑符号(显然,因为#字符的名称是在美国商业中的常规用法-在Twitter演变之前,它是“磅符号”)和'{''}'也被指定为国家替代字符。
因此,引入了有向图,以为那些不能表示字符的计算机系统提供一种机制,也为将终端替换字符分配给冲突代码点的数据终端设备提供了一种机制。Di / Tri-graphs已成为计算历史的古老文物(如今,计算机科学尚未教授该学科)。
有关此主题的详尽论文,请访问以下网址:http : //citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.96.678&rep=rep1&type=pdf