A digráf (a C nyelvcsaládban ) két vagy több karakterből álló sorozat, amelyet a fordító egy vagy több karakterként értelmez. Ellentétben a trigráfokkal , a digráfok előfeldolgozó általi helyettesítése lexikális elemzés után történik, és csak akkor, ha a digráf egyetlen token.
A digráfusokat a C90 nyelvbe (ISO/IEC 9899:1990) az „1. módosítás” vezeti be. Az első módosítást 1994-ben hagyták jóvá, 1995-ben fogadták el, és 1999-ben bekerült a C99 szabványba (ISO/IEC 9899:1999).
A C fordító a következő öt digráfot támogatja , amelyeket a C99 szabvány [1] ír le .
Kétjegyű mássalhangzó | Egyenértékű szimbólum |
---|---|
<: | [ |
:> | ] |
<% | { |
%> | } |
%: | # |
A C++ nyelvi szabvány nem csak két karakterből álló sorozatokat hív meg digráfokat, és felismeri [2] , hogy egy ilyen kifejezés helytelen.
A C++ nyelv támogatja az összes C-digráfot és trigráfot , valamint a következő táblázatban szereplő digráfusokat.
Kétjegyű mássalhangzó | Egyenértékű sorrend |
---|---|
%:%: | ## |
és | && |
bitor | | |
vagy | || |
xor | ^ |
kompl | ~ |
bitand | & |
and_eq | &= |
or_eq | |= |
xor_eq | ^= |
nem | ! |
not_eq | != |
A felsorolt digráfok a " " kivételével %:%:a C nyelven konstansként állnak rendelkezésre #define. <iso646.h>A konstansok az 1995-től származó "Normative addendum 1" ISO szabvány C kiegészítésében található " " fejlécfájlban vannak meghatározva . A C-vel való kompatibilitás megőrzése érdekében a C++ szabvány egy üres " " fejlécfájlt határoz meg <ciso646>.
A kód
%: idézet meghatározása ( x ) %: x idézet ( x )digráfok behelyettesítése után válik
# idézet meghatározása ( x ) # x idézet ( x )és a makró cseréje után azzá válik
"x"A kód
%: definiálja S "%:" Sdigráfok behelyettesítése után válik
# definiálja S "%:" S-tés a makró cseréje után azzá válik
"%:"