Question

Quelle était la raison originale d'utiliser la séquence trigraphique de certains caractères pour devenir d'autres caractères dans ansi C comme:

??=define arraycheck(a, b) a??(b??) ??!??! b??(a??)

devient

#define arraycheck(a, b) a[b] || b[a]
Était-ce utile?

La solution

Réponse courte: claviers / encodages de caractères qui n'incluent pas de tels graphiques.

De wikipedia:

Le jeu de caractères de base du langage de programmation C est un sur-ensemble du jeu de caractères ASCII qui comprend neuf caractères qui se trouvent en dehors du jeu de caractères invariant ISO 646.Cela peut poser un problème pour l'écriture du code source lorsque le clavier utilisé ne prend en charge aucun de ces neuf caractères.Le comité ANSI C a inventé les trigraphes comme moyen de saisir le code source à l'aide de claviers prenant en charge n'importe quelle version du jeu de caractères ISO 646.

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

Autres conseils

Certains anciens claviers n'avaient pas de caractères spécifiques, donc le langage a contourné le problème en vous permettant d'utiliser des trigraphes à la place.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top