previous next Up Title Contents Index

23.2.11 'ä' < 'a'

Kirjainvakiot muutetaan kokonaisluvuiksi. Järjestelmästä riippuen kirjain- tyypin arvo voi olla joka etumerkitön (unsigned) (usein hyvä asia) tai etumerkillinen (signed). Itse merkin sisäinen esitys kummassakin tapauksessa on sama, mutta laajennettaessa merkki kokonaisluvuksi saattaa etumerkki sotkea koko homman. Käytännössä on kyse seuraavasta:
	'a'  =  0x61 = 0110 0001  - > 0000 0000 0110 0001 (unsigned)
	                             0000 0000 0110 0001 (signed)
	'ä'  =  0x84 = 1000 0100  - > 0000 0000 1000 0100 (unsigned)
	                             1111 1111 1000 0100 (signed) 
Erityisesti tämä on muistettava käytettäessä kirjaimia indekseinä:
	
	char c;
	...
	kirjaimet[c]++;  /* Lisätään kirjainten lkm. */ /* VÄÄRIN */ 	
	...
	kirjaimet[(unsigned char)c]++; /* OIKEIN! */
	... 


previous next Up Title Contents Index