Leveä merkki on ohjelmointiin liittyvä termi. Sitä käytetään merkitsemään merkkitietotyyppiä, joka on leveämpi kuin perinteiset 8-bittiset merkit. Se ei ole sama kuin Unicode .
wchar_t on ANSI/ISO C -tietotyyppi (ja sitä käytetään myös muissa ohjelmointikielissä) edustamaan leveitä merkkejä.
Unicode 4.0 -standardi sanoo näin:
"ANSI/ISO C jättää leveiden merkkien semantiikan yksittäisen toteutuksen varaan"
yhtä hyvin kuin
wchar_t" Kääntäjä määrittää tyypin koon, vähintään 8 bittiä. Näin ollen sovellusten, joiden on säilytettävä siirrettävyys C- ja C++-kääntäjien välillä, ei tulisi käyttää wchar_tUnicode-tekstiä tallentamiseen. Tyyppi wchar_ton tarkoitettu tallentamaan leveitä merkkejä, kuten tietyt kääntäjät ymmärtävät, ja tämä ei välttämättä ole Unicoden mukainen ."
Windows API : ssa wchar_t- tyyppiä kutsutaan nimellä WCHAR , ja sen kiinteä koko on 16 bittiä, mikä estää koko Unicode-merkistöä (yli miljoona) koodaamasta. Siksi se rikkoo ANSI/ISO C -standardia, joka edellyttää, että wchar_t -merkkityyppi tukee kaikkia järjestelmässä esitettäviä merkkejä yhdessä wchar_t -objektissa . Itse asiassa WinAPI: ssa WCHAR tarkoittaa 2-tavuista sanaa UTF-16LE-koodauksesta ( WORD -tyyppinä ), joten merkit, joiden koodit ovat suurempia kuin FFFF 16 , koodataan WCHAR -parilla (ns. "korvikkeet") eikä niitä ole. merkkien määrä välitetään kaikille API-funktioille ja merkkijonon koko konesanoina.
GNU/Linuxissa tyyppi on wchar_t32 bittiä pitkä.
ANSI C -kirjastossa otsikkotiedostot < wchar.h > ja < wctype.h > vastaavat leveistä merkeistä.