Programmeren in C/Datatypes: verschil tussen versies
Verwijderde inhoud Toegevoegde inhoud
Regel 60:
=== ''char'' ===
Een ''char'' is een type dat bedoeld is karakters op te slaan. Het type is breed genoeg om alle karakters in de ''execution character set'' als positieve waarde op te slaan. De waarde van alle andere karakters is afhankelijk van de implementatie.
Net als bij het type int en zijn afgeleiden, heersen over het type char ook de nodige misverstanden. Het is bijvoorbeeld niet zo dat een ''char'' altijd een byte is. Dit is weliswaar vaak het geval, maar wordt geenzins door de standaard vereist. wel heeft een ''char'' '''minimaal''' 7 bits (geen 8!). Evenmin specificeert de standaard of een char met teken of zonder wordt opgeslagen. Ook dit is afhankelijk van de implementatie.
Om het al dan niet gebruiken van een teken-bit expliciet te maken, kunnen, net als bij de integers, de keyword signed en unsigned worden gebruikt, hetgeen al met al drie verschillende types char oplevert.
{| class="prettytable"
! type||betekenis
|-
| ''char'' || een karakter, met of zonder teken, al naar gelang de compiler
|-
| ''signed char'' || een karakter met teken-bit
|-
| ''unsigned char'' || een karakter zonder tekenbit
|}
Het is mogelijk een char als tiny int te gebruiken, maar meestal levert dit meer last dan gemak op. Veelal moet extra object-code worden gegenereerd om de conversie van char naar int te bewerkstelligen (wat het programma groter maakt in plaats van kleiner) en de teken-expansie kan rare effecten opleveren, vooral omdat de standaard in het midden laat of char wel of geen teken heeft.
=== ''float'', ''double'' en ''long double'' ===
|