Mikuláš je tu! Získaj 90 % extra kreditov ZADARMO s promo kódom CERTIK90 pri nákupe od 1 199 kreditov. Len do nedele 7. 12. 2025! Zisti viac:
NOVINKA: Najžiadanejšie rekvalifikačné kurzy teraz s 50% zľavou + kurz AI ZADARMO. Nečakaj, táto ponuka dlho nevydrží! Zisti viac:

Diskusia – 4. diel - Typový systém v céčku druhýkrát: Dátové typy

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
Posledné komentáre sú na spodnej časti poslednej stránky.
Avatar
DarkCoder
Člen
Avatar
Odpovedá na Krysto Foxik
DarkCoder:6.8.2021 10:23

Datový typ int spolu s použitým modifikátorem datového typu short (short int, short) rozhodně nezabírá v paměti 1 byte a nemá rozsah -128 až 127. Tento rozsah nabízí datový typ char (v některých implementacích) a datový typ char spolu s modifikátorem typu signed. Na toto už jsem reagoval v příspěvku před 4 lety! Bohužel to doposud nikdo neopravil.

Odpovedať
"I ta nejlepší poučka postrádá na významu, není-li patřičně předána." - DarkCoder
Avatar
Lukáš Turek:9.11.2021 10:46

Neměla by být velikost long double 128, ne 80 bitů?

Avatar
DarkCoder
Člen
Avatar
Odpovedá na Lukáš Turek
DarkCoder:9.11.2021 11:52

Na architektuře x86 je datový typ long double implementován jako datový typ o délce 80 bitů. Bývá ale uložen jako 12ti či 16ti bitová datová struktura.

Odpovedať
"I ta nejlepší poučka postrádá na významu, není-li patřičně předána." - DarkCoder
Avatar
DarkCoder
Člen
Avatar
DarkCoder:31.12.2021 0:22

Co by bylo dobré v článku doplnit, popř. opravit.

V C je pět základních datových typů - char, int, float, double, void.

short, long, long long, signed, unsigned jsou modifikátory datových typů, nikoli datové typy.

Rozsah typu char záleží na implementaci, nemusí být vždy -128 až 127.
Od toho slouží modifikátory signed a unsigned aby se jednoznačně určil rozsah.

Pokud už je zde zmínka o modifikátorech, sluší se poznamenat, že např.
signed, signed int, int znamenají totéž. Lze tedy označení int u modifikátorů vynechat.

Datový typ short int resp. short resp. signed short nemá velikost 8 bitů ale 16.

Není to jen důvod velikosti paměti pro použití toho konkrétního datového typu, ale rovněž rychlost. Přístup k proměnné zabírající 2 byty bude rychlejší nežli k proměnné zabírající 4 byty.

Dále je dobré doplnit, že i u celočíselné konstanty lze přesněji určit typ pomocí sufixu.
L - pro long (např. 0L), U - pro unsigned (např. 10U), oba sufixy lze kombinovat (např. 100UL).

Chybí zmínka o tom, že escape sekvence (např. \n) jsou rovněž znakové konstanty.

Je třeba být konkrétní, ne psát že modifikátor unsigned lze přidat k většině datových typů!

Hlavičkový soubor limits.h neobsahuje žádnou funkci. Obsahuje makra definující minimální a maximální rozsahy celočíselných typů. Rozsahy typů s pohyblivou desetinnou čárkou jsou uvedeny v hlavičkovém souboru float.h.

sizeof není funkce, ale operátor preprocesoru! Tedy vyhodnocení se provádí v době překladu. Výsledkem je beznaménkový celočíselný typ označovaný jako size_t.

Nakonec by bylo dobré zmínit se o specifikaci formátu ve funkcích printf() a scanf() pro každý datový typ a modifikovaný datový typ.

Odpovedať
"I ta nejlepší poučka postrádá na významu, není-li patřičně předána." - DarkCoder
Posledné komentáre sú na spodnej časti poslednej stránky.
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zobrazené 4 správy z 24.