Digraf (limbi C)

Un digraf (în familia limbajului C ) este o secvență de două sau mai multe caractere interpretată de compilator ca unul sau mai multe caractere. Spre deosebire de trigrafe , înlocuirea digrafului de către preprocesor este efectuată după analiza lexicală și numai dacă digraful este un singur simbol.  

Istorie

Digrafele sunt introduse în limbajul C90 (ISO/IEC 9899:1990) prin amendamentul „Amendamentul unu”. Amendamentul unu a fost aprobat în 1994, adoptat în 1995 și inclus în standardul C99 (ISO/IEC 9899:1999) în 1999.

Tabelul digrafelor C

Compilatorul C acceptă următoarele cinci digrafe , descrise în standardul C99 [1] .

Digraf Simbol echivalent
<: [
:> ]
<% {
%> }
%: #

Tabelul digraf C++

Standardul limbajului C++ numește digrafe nu numai secvențe de două caractere și recunoaște [2] că un astfel de termen este incorect.

Limbajul C++ acceptă toate digrafele și trigrafele C , precum și digrafele din tabelul următor.

Digraf Secvență echivalentă
%:%: ##
și &&
bitor |
sau ||
xor ^
compl ~
bitand &
and_eq &=
sau_echiv |=
xor_eq ^=
nu !
nu_echiv !=

Digrafele enumerate, cu excepția " %:%:", sunt disponibile în limbajul C ca constante #define. Constantele sunt definite în fișierul antet „ <iso646.h>” inclus în suplimentul standard C ISO „Anexa normativă 1” din 1995. Pentru a menține compatibilitatea cu C, standardul C++ definește un fișier antet gol " <ciso646>".

Exemple

Codul

%: definiți citatul ( x ) %: x citat ( x )

după înlocuirea digrafelor devine

# definește citatul ( x ) # citatul x ( x )

iar după înlocuirea macro-ului va deveni

"X"

Codul

%: definiți S „%:” S

după înlocuirea digrafelor devine

# definește S „%:” S

iar după înlocuirea macro-ului va deveni

"%:"

Vezi și

Note

  1. O mulțime de personaje C Arhivat pe 20 ianuarie 2012 la Wayback Machine 
  2. Copie arhivată . Consultat la 18 noiembrie 2014. Arhivat din original la 8 mai 2019.