<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Košinar - portfolio &#187; union</title>
	<atom:link href="https://portfolio.kosinar.cz/tag/union/feed/" rel="self" type="application/rss+xml" />
	<link>https://portfolio.kosinar.cz</link>
	<description></description>
	<lastBuildDate>Mon, 16 Feb 2015 18:22:20 +0000</lastBuildDate>
	<language>cs-CZ</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.0.38</generator>
	<item>
		<title>Programování (7) Struktura, union a výčet</title>
		<link>https://portfolio.kosinar.cz/programovani-7-struktura-union-vycet/</link>
		<comments>https://portfolio.kosinar.cz/programovani-7-struktura-union-vycet/#comments</comments>
		<pubDate>Fri, 26 Sep 2014 07:41:04 +0000</pubDate>
		<dc:creator><![CDATA[adam@kosinar.cz]]></dc:creator>
				<category><![CDATA[Programování]]></category>
		<category><![CDATA[c]]></category>
		<category><![CDATA[definice struktury]]></category>
		<category><![CDATA[enum]]></category>
		<category><![CDATA[pointer na strukturu]]></category>
		<category><![CDATA[pole struktur]]></category>
		<category><![CDATA[programování]]></category>
		<category><![CDATA[struktura]]></category>
		<category><![CDATA[union]]></category>
		<category><![CDATA[výčet]]></category>
		<category><![CDATA[výčtový typ]]></category>

		<guid isPermaLink="false">http://portfolio.kosinar.cz/?p=249</guid>
		<description><![CDATA[<p>&#160; &#160; Struktura • struktura je heterogenní datový typ (je složen z libovolného počtu prvků různých datových typů) • navenek vystupuje jako jeden objekt Definice 1. struktura není pojmenována, nedá se využít dále v programu, lze používat pouze definované proměnné...<br /><a class="read-more-button" href="https://portfolio.kosinar.cz/programovani-7-struktura-union-vycet/">Číst více</a></p>
<p>Příspěvek <a rel="nofollow" href="https://portfolio.kosinar.cz/programovani-7-struktura-union-vycet/">Programování (7) Struktura, union a výčet</a> pochází z <a rel="nofollow" href="https://portfolio.kosinar.cz">Košinar - portfolio</a></p>
]]></description>
				<content:encoded><![CDATA[<p>&nbsp;</p>
<p>&nbsp;</p>
<h2>Struktura</h2>
<p>• struktura je heterogenní datový typ (je složen z libovolného počtu prvků různých<br />
datových typů)<br />
• navenek vystupuje jako jeden objekt</p>
<h3>Definice</h3>
<h4 style="text-align: left;"><strong>1. struktura není pojmenována, nedá se využít dále v programu, lze používat pouze definované proměnné</strong></h4>
<p style="text-align: left;">struct {<br />
int vyska;<br />
float vaha;<br />
} pavel, honza, karel;</p>
<h4 style="text-align: left;"><strong>2. struktura je pojmenována, dá se využít dále v programu</strong></h4>
<p style="text-align: left;">struct miry {<br />
int vyska;<br />
float vaha;<br />
} pavel, honza, karel;<br />
struct miry jan, martin; // definice proměnných<br />
miry jan, martin; // chyba</p>
<h4 style="text-align: left;"><strong>3. definice struktury jako nový datový typ pomocí příkazu typedef, k definici proměnných není potřeba klíčové slovo struct</strong></h4>
<p style="text-align: left;">typedef struct {<br />
int vyska;<br />
float vaha;<br />
} MIRY;<br />
MIRY pavel, honza, karel;</p>
<h4 style="text-align: left;"><strong>4. definice pomocí typedef, kdy je struktura pojmenována, používá se, když struktura</strong> <strong>odkazuje na sebe sama</strong></h4>
<p style="text-align: left;">typedef struct polozka {<br />
int hodnota;<br />
struct položka *dalsi;<br />
} POLOZKA;</p>
<h3 style="text-align: left;">Přístup</h3>
<p style="text-align: left;">CLASS první,druhy;<br />
prvni.iq=120;<br />
strcpy(první.jmeno,&#8220;Michal&#8220;);<br />
scanf(&#8222;%d&#8220;,&amp;druhy.iq);<br />
gets(druhy.jmeno);<br />
printf(&#8222;%s&#8220;,druhy.jmeno);<br />
printf(&#8222;%c&#8220;,druhy.jmeno[2]);</p>
<h4 style="text-align: left;">• pole struktur</h4>
<p style="text-align: left;">MIRY lide[100];<br />
lide[50].vyska = 176;</p>
<h4 style="text-align: left;">• je možné pracovat s celou strukturou najednou (honza = pavel – kopie celé struktury najednou)</h4>
<h4 style="text-align: left;">• pole ve struktuře</h4>
<p style="text-align: left;">typedef struct {<br />
int pole[10];<br />
} STR_POLE;<br />
STR_POLE x;<br />
x.pole[1] = 5;</p>
<h4 style="text-align: left;">• pointer na strukturu</h4>
<p style="text-align: left;">MIRY *clovek;<br />
clovek = (MIRY*) malloc(sizeof(MIRY));</p>
<h4 style="text-align: left;">• přístup k dynamické struktuře</h4>
<p style="text-align: left;">(*clovek).vaha = 70.4; // nebo jednodušeji<br />
clovek-&gt;vaha = 70.4;</p>
<h4 style="text-align: left;">• inicializace struktury</h4>
<p style="text-align: left;">MIRY a = {190, 84.3};</p>
<h2 style="text-align: left;">Union</h2>
<p style="text-align: left;">• vyhradí se paměť pro největší položku ze všech položek v unionu definovaných<br />
• všechny <strong>položky unionu se překrývají</strong> (ve struktuře by ležely za sebou), tzn. může být v jednom okamžiku použita pouze jedna položka<br />
typedef union {<br />
char c;<br />
int i;<br />
float f;<br />
} TEST;<br />
• <strong>union</strong> <strong>neposkytuje</strong> informaci o prvku, který do něj byl naposledy uložen</p>
<h2 style="text-align: left;">Enum (výčtový typ)</h2>
<p style="text-align: left;">• slouží k definici <strong>seznamu symbolických konstant</strong>, které jsou většinou<strong> vzájemně závislé</strong><br />
typedef enum {<br />
MODRA, CERVENA, ZELENA, ZLUTA<br />
} BARVY;<br />
BARVY x = MODRA;<br />
•<strong> čísluje se implicitně od nuly</strong>, lze explicitně inicializovat<br />
typedef enum {<br />
MODRA = 5, CERVENA = 8, ZELENA, ZLUTA = 15<br />
} BARVY; // ZELENA bude mít číslo 9</p>
<p>Příspěvek <a rel="nofollow" href="https://portfolio.kosinar.cz/programovani-7-struktura-union-vycet/">Programování (7) Struktura, union a výčet</a> pochází z <a rel="nofollow" href="https://portfolio.kosinar.cz">Košinar - portfolio</a></p>
]]></content:encoded>
			<wfw:commentRss>https://portfolio.kosinar.cz/programovani-7-struktura-union-vycet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Programování (4) Datové typy v jazyce C</title>
		<link>https://portfolio.kosinar.cz/programovani-4-datove-typy-jazyce-c/</link>
		<comments>https://portfolio.kosinar.cz/programovani-4-datove-typy-jazyce-c/#comments</comments>
		<pubDate>Wed, 24 Sep 2014 12:06:22 +0000</pubDate>
		<dc:creator><![CDATA[adam@kosinar.cz]]></dc:creator>
				<category><![CDATA[Programování]]></category>
		<category><![CDATA[bool]]></category>
		<category><![CDATA[char]]></category>
		<category><![CDATA[datový typ]]></category>
		<category><![CDATA[double]]></category>
		<category><![CDATA[float]]></category>
		<category><![CDATA[int]]></category>
		<category><![CDATA[paměť]]></category>
		<category><![CDATA[pointer]]></category>
		<category><![CDATA[proměnné]]></category>
		<category><![CDATA[třída]]></category>
		<category><![CDATA[typedef]]></category>
		<category><![CDATA[union]]></category>
		<category><![CDATA[void]]></category>

		<guid isPermaLink="false">http://portfolio.kosinar.cz/?p=241</guid>
		<description><![CDATA[<p>&#160; &#160; Datový typ určuje pro proměnnou – množinu přípustných hodnot, množinu operaci a velikost v paměti. Rozdělení jednoduché celočíselné &#8211; celá čísla, znak, enum reálné void strukturované pole,řetězec, struktura, union, FILE Jednoduché • ordinální (hodnoty tvoří lineárně uspořádanou množinu, tzn....<br /><a class="read-more-button" href="https://portfolio.kosinar.cz/programovani-4-datove-typy-jazyce-c/">Číst více</a></p>
<p>Příspěvek <a rel="nofollow" href="https://portfolio.kosinar.cz/programovani-4-datove-typy-jazyce-c/">Programování (4) Datové typy v jazyce C</a> pochází z <a rel="nofollow" href="https://portfolio.kosinar.cz">Košinar - portfolio</a></p>
]]></description>
				<content:encoded><![CDATA[<h2></h2>
<p>&nbsp;</p>
<p>&nbsp;</p>
<h2><strong>Datový typ</strong></h2>
<p>určuje pro proměnnou – množinu přípustných hodnot, množinu operaci a velikost v paměti.</p>
<h3>Rozdělení</h3>
<ul>
<li>jednoduché</li>
<li>celočíselné &#8211; celá čísla, znak, enum</li>
<li>reálné</li>
<li>void</li>
<li>strukturované</li>
<li>pole,řetězec, struktura, union, FILE</li>
</ul>
<h4>Jednoduché</h4>
<p>• ordinální (hodnoty tvoří lineárně uspořádanou množinu, tzn. pro každý prvek je přesně definovaný předchůdce i následovníka, z posledního prvku dojde k přetečení na první)<br />
o celočíselné – celá čísla, znaky, enum<br />
o v C++ datový typ bool (logická hodnota)<br />
• číslo s plovoucí desetinnou čárkou<br />
• prázdný datový typ (void) – nemá definovaný rozsah</p>
<h4>Strukturované</h4>
<p>• homogenní (obsahuje prvky stejného datového typu) – pole, řetězec<br />
• heterogenní (obsahuje prvky různých datových typů) – struktura,<br />
union</p>
<h4>Zvláštní</h4>
<p>• pointer – statická proměnná obsahující adresu v paměti</p>
<h3>Definice jednotlivých datových typů a charakteristika jejich vlastností</h3>
<p>• v ANSI C musí být definice uvedena vždy na začátku bloku</p>
<h4>Char</h4>
<p>char a = &#8218;K';<br />
• ukládá jeden znak, velikost 8b<br />
• pracuje s čísly odpovídající ASCII tabulce</p>
<h4>Celočíselné datové typy</h4>
<p>int a = -3;<br />
short b = 6;<br />
long c = 250000;<br />
unsigned int d = 100;<br />
• rozlišujeme znaménkové (signed) – výchozí a neznaménkové (unsigned)<br />
• rozlišují se rozsahem hodnot a velikostí v paměti</p>
<h4>Reálné datové typy</h4>
<p>float a = 12.5;<br />
double b = 15.12;<br />
long double c = 25.66;<br />
• liší se v rozsahu a přesnosti</p>
<h4>Logický datový typ (C++)</h4>
<p>bool x = true;<br />
• má 2 hodnoty – pravda (true) a nepravda (false)<br />
• true je jakákoliv nenulová hodnota, nulová hodnota odpovídá false</p>
<h3>Definování nových datových typů pomocí typedef</h3>
<p>typedef definice_typu nazev;<br />
• pomocí příkazu typedef lze<br />
vytvářet aliasy jiných datových typů (pro zjednodušení použití)<br />
typedef unsigned int uint;<br />
unsigned int a = 30; // dlouhe<br />
uint b = 30; // zkracene<br />
• definice struktur, výčtových typů, unionů – viz Struktura, union a výčet v jazyce C</p>
<h3>Charakteristika a deklarace lokálních a globálních proměnných</h3>
<h4>Globální proměnné</h4>
<p>• deklarují se mimo funkce, v hlavičkovém souboru<br />
• paměť se alokuje na začátku programu a uvolňuje na konci (v datové oblasti)<br />
• platnost proměnné je od místa definice do konce souboru<br />
• jsou vždy implicitně inicializovány na nulu</p>
<h4>Lokální proměnné</h4>
<p>• platnost proměnné je od místadefinice, do konce funkce, ve kteréjsou definovány<br />
• překrývají globální proměnné sestejným názvem<br />
• nejsou implicitně inicializovány –jejich hodnota je vždy náhodná</p>
<h3>Typy, charakteristika avýznam paměťových třídv jazyce C</h3>
<p>• určují, ve které části paměti budeproměnná kompilátorem umístěna akde všude bude viditelná</p>
<h4>Rozdělení paměti</h4>
<p>• halda – dynamická data<br />
• zásobník – lokální proměnné,návratové hodnoty funkcí<br />
• datová oblast – globální proměnné<br />
• kódová oblast – kód programu</p>
<h4>Třída auto</h4>
<p>• automatická paměťová třída<br />
• implicitní pro lokální proměnné<br />
• ukládá proměnnou do zásobníku<br />
• existuje od vstupu do funkce,zaniká při výstupu z funkce<br />
• při každém vstupu do funkce mánáhodnou hodnotu</p>
<h4>Třída extern</h4>
<p>• implicitní pro globální proměnné<br />
• proměnná je uložena v datové oblasti<br />
• používá se při odděleném překladu, kdy je potřeba, aby více souborů sdílelo tutéž proměnnou<br />
• v jednom souboru je definována bez klíčového slova extern a v ostatních musí být deklarována s klíčovým slovem extern</p>
<h4>Třída static</h4>
<p>• neexistuje žádná implicitní definice, tzn. klíčové slovo static musí být uvedeno vždy<br />
• proměnné jsou uloženy v datové oblasti<br />
• pro globální proměnné nebo funkce má význam, že jsou viditelné pouze v modulu, kde jsou definovány<br />
• pro lokální proměnné má význam, že si proměnné ponechávají svoji hodnotu mezi jednotlivými voláními funkce<br />
• existuje od prvního volání funkce až do doby ukončení programu<br />
• není přístupná z vnějšku funkce</p>
<h4>Třída register</h4>
<p>• zajistí uložení proměnné do registru procesoru místo operační paměti, pokud je to možné<br />
• znamená rychlejší přístup k proměnné<br />
• pouze pro lokální proměnné</p>
<p>&nbsp;</p>
<p>Příspěvek <a rel="nofollow" href="https://portfolio.kosinar.cz/programovani-4-datove-typy-jazyce-c/">Programování (4) Datové typy v jazyce C</a> pochází z <a rel="nofollow" href="https://portfolio.kosinar.cz">Košinar - portfolio</a></p>
]]></content:encoded>
			<wfw:commentRss>https://portfolio.kosinar.cz/programovani-4-datove-typy-jazyce-c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
