문제

나는 오늘 C99와 C ++에 digaphs가 있다는 것을 배웠다. 다음은 유효한 프로그램입니다.

%: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:>;
    %>
%>

내 질문은 : 왜 존재합니까?

도움이 되었습니까?

해결책

Digraphs는 ISO 646 문자 세트를 지원하는 키보드가없는 프로그래머를 위해 만들어졌습니다.

http://en.wikipedia.org/wiki/c_trigraph

다른 팁

나는 그들의 존재가 가능성 어딘가에 누군가가 캐릭터 세트가 너무 고풍스러운 운영 체제를 가진 컴파일러를 사용하고있어 C 또는 C ++가 전체 언어를 표현 해야하는 모든 캐릭터를 반드시 가지고있는 것은 아닙니다.

또한, 그것은 좋은 항목을 만듭니다 IOCCC.

이 지구의 키보드 중 일부에는 '#'및 '{'와 같은 키가 없을 수 있기 때문입니다.

C/C ++의 Digraphs와 Trigraphs는 CDC6000 (60 비트), Univac 1108 (36 비트), Decsystem 10 및 20 시스템 (36 비트)에서 사용하는 6 개의 비트 문자 세트의 날에서 발생합니다. ASA X3.4-1963과 호환되지 않음 (이제 ANSI X3.4-1963 "7 비트 미국 국가 표준 코드를위한 정보 인터체인지"). 최신 개정은 ANSI X3.4-1986입니다. 이 시스템은 96 개의 그래픽 코드 포인트를 모두 표현할 수 없었기 때문에 많은 사람들이 생략되었습니다. 또한 X3.4는 다른 국가 표준 기관 (GBR, GER, ITA 등)과 조정되었으며 X3.4에는 국가 교체 캐릭터로 지정된 코드 포인트가있었습니다. 가장 분명한 예는 Britsh Pound의 #입니다. 기호 ( # 문자의 이름은 트위터의 진화 전에 미국 상거래의 기존 사용에서 "파운드 부호"이기 때문에 명백하고 '{' '}'도 국가 대체 캐릭터로 지정되었습니다. 따라서 Digraphs는 문자를 표현할 수없는 컴퓨터 시스템과 충돌하는 코드 포인트에 국가 교체 문자를 할당하는 데이터 터미널 장비에 대한 메커니즘을 제공하기 위해 도입되었습니다. Di/Tri -Graphs는 컴퓨팅 역사의 고풍적인 유물이되었습니다 (요즘 컴퓨터 과학에서 가르치지 않은 주제) -이 주제에 대한 철저한 논문은 여기에서 찾을 수 있습니다. http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.96.678&rep=rep1&type=pdf

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top