Digraph (C-sprog)

En digraf (i C -sprogfamilien ) er en sekvens af to eller flere tegn, der af compileren fortolkes som et eller flere tegn. I modsætning til trigrafer udføres digrafsubstitution af præprocessoren efter leksikalsk analyse og kun hvis digrafen er et enkelt token.  

Historie

Digrafer indføres i C90-sproget (ISO/IEC 9899:1990) med ændringsforslaget "Ændring 1". Ændring 1 blev godkendt i 1994, vedtaget i 1995 og inkluderet i C99-standarden (ISO/IEC 9899:1999) i 1999.

Tabel over digrafer C

C -kompileren understøtter følgende fem digrafer , beskrevet i C99-standarden [1] .

Digraph Tilsvarende symbol
<: [
:> ]
<% {
%> }
%: #

C++ digraftabel

C++ sprogstandarden kalder ikke kun digrafer for sekvenser af to tegn og anerkender [2] , at et sådant udtryk er forkert.

C++-sproget understøtter alle C-digrafer og trigrafer såvel som digraferne fra følgende tabel.

Digraph Tilsvarende sekvens
%:%: ##
og &&
bitor |
eller ||
xor ^
kompl ~
bitand &
and_eq &=
or_eq |=
xor_eq ^=
ikke !
ikke_eq !=

De anførte digrafer, undtagen " %:%:", er tilgængelige på C-sproget som konstanter #define. Konstanterne er defineret i overskriftsfilen " <iso646.h>" inkluderet i ISO-standard C-tillægget "Normative addendum 1" fra 1995. For at opretholde kompatibilitet med C, definerer C++-standarden en tom overskriftsfil " <ciso646>".

Eksempler

Koden

%: definer citat ( x ) %: x citat ( x )

efter substitution af digrafer bliver

# definer citat ( x ) # x citat ( x )

og efter udskiftning af makroen bliver den

"x"

Koden

%: definer S "%:" S

efter substitution af digrafer bliver

# define S "%:" S

og efter udskiftning af makroen bliver den

"%:"

Se også

Noter

  1. Masser af C-karakterer Arkiveret 20. januar 2012 på Wayback Machine 
  2. Arkiveret kopi . Hentet 18. november 2014. Arkiveret fra originalen 8. maj 2019.