我今天学到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字符集的键盘的程序员,创建了Digraphs。
我相信它们的存在可以追溯到这样一种可能性:某个地方的某个人正在使用一个编译器和操作系统,其字符集如此陈旧,以至于它不一定拥有C或C++需要表达整个语言所需的所有字符。
此外,这也是IOCCC中很好的参赛作品。
我认为这是因为地球上的一些键盘可能没有像“#”和“{”这样的按键。
根据维基百科上的文章,它们被创建为三连符的简单替代品。
也就是说,对于5个三连符??(
、??)
、??<
、??>
、??=
,提供了替换的二元组:<:
、:>
、<%
、%>
、%:
。这发生在1994年。
:-)
。 - MD XF