Maison >développement back-end >C++ >Pourquoi les digraphes sont-ils toujours présents en C et C ?

Pourquoi les digraphes sont-ils toujours présents en C et C ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-30 16:53:26706parcourir

Why are digraphs still present in C and C  ?

Explorer l'utilité des digraphes en C et C

Dans le monde de la programmation, les digraphes occupent une place particulière dans les annales de C99 et C . Avec une syntaxe telle que %:include et <::>, les digraphes peuvent sembler archaïques et énigmatiques à certains. Examinons donc la raison d'être de leur existence.

Digraphes et contraintes de clavier

Les origines des digraphes remontent à une époque où les programmeurs manquaient souvent de claviers prenant en charge le jeu de caractères ISO 646 complet. Cette limitation empêchait leur capacité à représenter certains symboles, notamment le signe pour cent (%) et les crochets ([]).

Pour surmonter ce défi, les créateurs de C ont imaginé une solution astucieuse : les digraphes. Ces séquences de deux caractères représentaient les symboles manquants, permettant aux programmeurs de contourner leurs contraintes matérielles sans recourir à des codes hexadécimaux ou à d'autres méthodes lourdes.

Un exemple concret

Prenons l'exemple suivant en C99 :

<code class="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:>;
    %>
%></code>

Dans cet extrait, le digraphe % : remplace le signe de pourcentage, activant la directive de préprocesseur #include. De même, <::> représente les crochets, entourant les paramètres s et d dans la définition de la fonction de copie.

Sans digraphes, les programmeurs utilisant des claviers ne prenant pas en charge la norme ISO 646 auraient dû écrire :

<code class="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__$$__];
    __$$__
__$$__</code>

Comme vous Comme on peut le voir, cette notation alternative est nettement plus lourde et moins lisible. Les digraphes offrent une solution concise et pratique à ce problème.

Conclusion

Bien que les digraphes puissent sembler une relique du passé, leur importance historique dans le développement de C99 et C'est indéniable. Ils sont apparus comme une solution pragmatique aux limitations matérielles, permettant aux programmeurs d'écrire du code sans être limités par la disponibilité de symboles spécifiques sur leurs claviers.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn