Portál AbcLinuxu, 12. května 2025 01:59

Dotaz: Datové typy podle ANSI C a jejich velikost v rámci GCC

21.10.2010 11:07 Begleiter | skóre: 47 | blog: muj_blog | Doma
Datové typy podle ANSI C a jejich velikost v rámci GCC
Přečteno: 574×
Odpovědět | Admin

Dobrý den,

mám takový cíl naučit se slušně programovat v jazyce C. Vybral jsem si k tomu knížku "Učíme se programovat v jazyce C" od Václava Kadlece (vydalo CP Books, a.s. v roce 2005).

Problém je, že se mi zdá, že v této knize jsou chyby v tabulce uvádějící celočíselné datové typy -- konkrétně názvy datových typů. Vím, že velikost závisí na překladači, resp. platformě...

Chtěl bych tedy poprosit, zda by nebyl někdo ochotný uvést zde celočíselné datové typy podle ANSI C + kolik bajtů zabírají v rámci GCC, resp. jaký mají rozsah.

Předem děkuju za všechny odpovědi.


Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

21.10.2010 11:33 vlastagf | skóre: 11
Rozbalit Rozbalit vše Re: Datové typy podle ANSI C a jejich velikost v rámci GCC
Odpovědět | | Sbalit | Link | Blokovat | Admin
Podle me nejlepsi reseni je si to zkusit.

Vytvor si pole daneho typu a nech si vypsat adresu sousednich prvku.
21.10.2010 11:39 Begleiter | skóre: 47 | blog: muj_blog | Doma
Rozbalit Rozbalit vše Re: Datové typy podle ANSI C a jejich velikost v rámci GCC

Díky. Pole sice ještě neumím, ale až k nim dorazím, tak si to vyzkouším.

21.10.2010 13:14 rastos | skóre: 63 | blog: rastos
Rozbalit Rozbalit vše Re: Datové typy podle ANSI C a jejich velikost v rámci GCC
Odpovědět | | Sbalit | Link | Blokovat | Admin
Niekde si musel niečo preskočiť, pretože každá kniha o C na začiatku hovorí zhruba toto: Akékoľvek iné informácie sú platformovo závislé a ako začiatočník by si sa o ne nemal starať.

Koľko bajtov * má int na danej platforme ti povie

#include <stdio.h>
int main(int argc,char *argv[])
{
  printf("sizeof(int)==%d\n",sizeof(int));
  return 0;
}
* presnejšie koľko char-ov sa vojde na miesto, ktoré zaberá jeden int (ignorujúc zarovnávanie a pod.)
mess avatar 21.10.2010 13:17 mess | skóre: 43 | blog: bordel | Háj ve Slezsku - Smolkov
Rozbalit Rozbalit vše Re: Datové typy podle ANSI C a jejich velikost v rámci GCC
Odpovědět | | Sbalit | Link | Blokovat | Admin
Velikost celočíselných datových typů závisí na platformě a překladači a jsou definované takto (aspoň podle toho, co nás učili ve škole): short <= int <= long Přičemž short zabírá obvykle 1 byte.

Pokud bys chtěl typ, který má přesný počet bitů, použij některý z následujících typů Tyto ale nejsou (AFAIK) součástí standardního ANSI C.
Cez párne mesiace zošíváš vaginy, cez neparne montuješ hajzle.
21.10.2010 14:16 finn | skóre: 43 | blog: finnlandia | 49° 44´/13° 22´
Rozbalit Rozbalit vše Re: Datové typy podle ANSI C a jejich velikost v rámci GCC
(1) Short je asi nejčastěji 16bitový typ, a protože bajt má většinou osm bitů, neodvažoval bych se tvrdit, ze short zabírá obvykle jeden bajt.

(2) Datové typy (u)intX_t jsou definované v C99 (ISO/IEC 9899:1999), což je i standard ANSI. Druhá věc je, že spousta překladačů C99 více či méně ignoruje.
Užívej dne – možná je tvůj poslední.
21.10.2010 15:30 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Datové typy podle ANSI C a jejich velikost v rámci GCC
Navíc je dobré mít na paměti, že ani překladač podporující C99 nemusí nutně implementovat (u)intN_t, ale pouze (u)int_leastN_t.
21.10.2010 13:42 Begleiter | skóre: 47 | blog: muj_blog | Doma
Rozbalit Rozbalit vše Re: Datové typy podle ANSI C a jejich velikost v rámci GCC
Odpovědět | | Sbalit | Link | Blokovat | Admin

Děkuju všem za odpovědi. Jsem moudřejší.

21.10.2010 16:20 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Datové typy podle ANSI C a jejich velikost v rámci GCC
Odpovědět | | Sbalit | Link | Blokovat | Admin
Jen doplnění k 64bit-ům „Specific C-language data models“ dole tabulka 64-bit data models.
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
21.10.2010 16:41 Begleiter | skóre: 47 | blog: muj_blog | Doma
Rozbalit Rozbalit vše Re: Datové typy podle ANSI C a jejich velikost v rámci GCC

Super! Moc díky.

22.10.2010 12:04 Let_Me_Be | skóre: 20 | blog: cat /proc/idea/current | Brno
Rozbalit Rozbalit vše Re: Datové typy podle ANSI C a jejich velikost v rámci GCC
Odpovědět | | Sbalit | Link | Blokovat | Admin
http://en.wikipedia.org/wiki/Limits.h

http://en.wikipedia.org/wiki/Float.h
Linked in profil - Můj web - Nemůžete vyhrát hádku s blbcem. Nejdřív vás stáhne na svoji úroveň a pak ubije zkušenostmi.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.