|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| celá znamanková | celá bez znaménka | reálná |
| signed char | unsigned char | float |
| short | unsigned short | double |
| int | unsigned | long double |
| long | unsigned long | - |
Tabulka vypadá na první pohled složitě, ale pojmenování má svojí logiku. Celočíselné typy se jmenují char, short, int a long. Místo short a long lze napsat také short int a long int. Až na char (kde to norma C nespecifikuje) jsou všechny implicitně znaménkové, explicitně to dá určit klíčovými slovy signed a unsigned. Například místo long tak můžete napsat signed long nebo i signed long int. Velikost typu v bytech lze zjistit operátorem sizeof. Vždy platí, že odpovídající znaménkové a bezznaménkové typy jsou stejně velké, dále C zaručuje, že sizeof(char) je jedna. Spolehnou se také můžeme, že
sizeof(short) <= sizeof(int) <= sizeof(long)
Konkrétní velikosti norma C nespecifikuje. Typ int by měl být nejchutnější pro danou architekturu, od dob MS DOSu, kde byl int dvoubytový, vesměs platí, že sizeof(int) == 4, ale je dobré vědět, že to Céčko nezaručuje. V N bitech lze uchovat 2N různých hodnot, tím je dán i rozsah jednotivých typů. Znaménkové reprezentují celá čísla od - 28 * sizeof(typ) - 1 do 28 * sizeof(typ) - 1 - 1 a bezznaménková od 0 do 28 * sizeof(typ) - 1 - 1 včetně.
V případě reálných typů můžeme použít float, double a long double, rozsah a přesnost závisí na implementaci. Úsporný, ale málo přesný a s malým rozsahem je float, naopak long double je velký, ale zato přesnější a s velkým rozsahem. Typ double je někde uprostřed.
Vypadá to celé dost složitě, ale v praxi se obvykle používá int a double, s nimi nejčastěji pracují i knihovní funkce. Céčko nemá specifický typ pro boolovské hodnoty Ano/Ne, zde se používá int, nula znamená Ne a jakákoli jiná hodnota (nejčastěji 1) Ano. Jako znak (písmeno) se používá char, aniž bychom specifikovali, zda je signed nebo unsigned. Jelikož char je zároveň číselný typ, můžeme se znaky počítat i bez explicitní konverze na ASCII hodnotu.
V příštím díle si ukážeme, jak definovat proměnnou a dojde i na zápis konstant.
|
|
||
|
KOMENTARZE
Nie ma komentarzy dla tej pozycji. |
||
|
Tylko zarejestrowani użytkownicy mogą dopisywać komentarze.
|
||
| 1. |
Pacman linux Download: 5529x |
| 2. |
FreeBSD Download: 9747x |
| 3. |
PCLinuxOS-2010 Download: 9236x |
| 4. |
alcolix Download: 11711x |
| 5. |
Onebase Linux Download: 10399x |
| 6. |
Novell Linux Desktop Download: 0x |
| 7. |
KateOS Download: 6901x |
| 1. |
xinetd Download: 3031x |
| 2. |
RDGS Download: 937x |
| 3. |
spkg Download: 5938x |
| 4. |
LinPacker Download: 11124x |
| 5. |
VFU File Manager Download: 3747x |
| 6. |
LeftHand Mała Księgowość Download: 7979x |
| 7. |
MISU pyFotoResize Download: 3459x |
| 8. |
Lefthand CRM Download: 4243x |
| 9. |
MetadataExtractor Download: 0x |
| 10. |
RCP100 Download: 3755x |
| 11. |
Predaj softveru Download: 0x |
| 12. |
MSH Free Autoresponder Download: 0x |
linuxsoft.cz | Design:
www.megadesign.cz