<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 14 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p
        {mso-style-priority:99;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
        {mso-style-priority:99;
        mso-style-link:"Balloon Text Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:8.0pt;
        font-family:"Tahoma","sans-serif";}
span.EmailStyle18
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
span.BalloonTextChar
        {mso-style-name:"Balloon Text Char";
        mso-style-priority:99;
        mso-style-link:"Balloon Text";
        font-family:"Tahoma","sans-serif";}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:70.85pt 70.85pt 70.85pt 70.85pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Ja sa snazim vyhybat sa aj tomu #ifndef a v celku sa mi dari.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Ak som to musel niekedy pouzit tak jedine neoptimalnym
<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">rozlozenim informacii v hlavickovych suboroch.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Ale tym nechcem povedat ze je zle to pouzivat.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">j.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
<div>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">From:</span></b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif""> Hw-list [mailto:hw-list-bounces@list.hw.cz]
<b>On Behalf Of </b>František Burian<br>
<b>Sent:</b> Friday, December 18, 2015 11:02 AM<br>
<b>To:</b> HW-news<br>
<b>Subject:</b> Re: Zacatecnicke dotazy v C<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal" style="margin-bottom:12.0pt">Dobry den,<br>
<br>
  U Pascalu mate ten hlavickovy soubor taky, jen je umisteny na zacatku toho pascaloveho souboru, kde mate ty deklarace ktere nize v souboru popisete. Holt si zvyknete ze pro C je potreba tohle rozdelit na dva soubory.<br>
<br>
No a proc mit hlavicky ? Predstavte si pripad. Mate 3 moduly, A,B,C. V modulu A vyuzivate funkci z B, v b zC, v C z A ... at budete ceckove soubory includovat v jakemkoliv poradi, porad to bude rvat ze neco neni definovano. Pokud z toho udelate tri jednotky
 ke kompilaci a udelate korektne tri hlavickove soubory, bude vam vse chodit bez problemu, linker se postara o spravne volani vzajemnych modulu.
<br>
<br>
Kdyby vas napadlo dat tu hlavicku do C souboru, a napriklad A i B vyuziva C, a v obou includnete C, a v mainu includnete A,B i C muzou nastat dve veci, budto nekonecny cyklus vzajemneho includovani, nebo opetovna deklarace toho sameho. Oboji kompilator zarizne
 s chybou - to je mimochodem duvod, mit v hlavickovem souboru minimum informaci (zadny kod) a podmineny text #ifndef xx #define xx ... hlavicka .. #endif konec souboru<br>
<br>
S pozdravem,<br>
<br>
 Burian<br>
<br>
<o:p></o:p></p>
<p>---------- Původní zpráva ----------<br>
Od: Pavel Kutina <hw@prelude.cz><br>
Komu: HW-news <hw-list@list.hw.cz><br>
Datum: 18. 12. 2015 10:43:46<br>
Předmět: Re: Zacatecnicke dotazy v C<o:p></o:p></p>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Priznam se, ze jsem ostuda ostudna a web arduina jsem prochazel jen zbezne a
<br>
v mistech, ktere jsem akutne potreboval. Tohle mi uniklo, ted uz je jasne, <br>
ze asi bude lepsi v projektu udrzovat poradek...<br>
<br>
A co se tyka prdeni v divadle - tam si dokazu celkem predstavit, proc bych <br>
to nemel delat, pripadne co to pozitivniho ci negativniho mne (nebo okoli) <br>
prinese. Ale proc neincludovat .c netusim - konkretne treba soubor s fonty <br>
obsahuje celkem jedno velke pole a to je vsechno, to k nemu mam delat <br>
hlavicku a tu includovat? Co s kusy kodu, u kterych nechci, aby mi prekazely <br>
v aktualnim souboru? U Pascalu to bylo celkem jednoduche - co je hotove, ven <br>
s tim do dalsiho souboru, ten nainkludovat. Proc je to v C spatne? <br>
Mimochodem, ten "#include fonts.c" jsem "zdedil" spolu s knihovnou pro <br>
ovladani TFT, tu jsem sice kompletne prepsal (takze jsem praci s <br>
displejem -za cenu drobnych kompromisu, jako je treba nesnadna <br>
prenositelnost- zrychlil zhruba tricetinasobne), ale ten include uz tam <br>
zustal.<br>
<br>
Jinak pouzivani .h je dalsi bod na mem soukromem seznamu k vyjasneni (dobre, <br>
u knihoven si funkci vysvetlim celkem snadno), jak koukam, u C je potreba k <br>
programovani i nejaka ta literarni zajmova cinnost, tak si holt budu <br>
nasledujicich ctrnact dnu pred spanim cist misto Vondrusky nejakeho <br>
Ritchieho :)<br>
<br>
Pavel Kutina<br>
<br>
<br>
<br>
----- Original Message ----- <br>
From: "Milan B." <<a href="mailto:milan@bastl.sk">milan@bastl.sk</a>><br>
To: <<a href="mailto:hw-list@list.hw.cz">hw-list@list.hw.cz</a>><br>
Sent: Friday, December 18, 2015 2:02 AM<br>
Subject: Re: Zacatecnicke dotazy v C<br>
<br>
<br>
On 18. 12. 2015 1:23, Pavel Kutina wrote:<br>
> Diky za obsahle shrnuti.<br>
><br>
> Bod a) jsem otestoval a funguje, vyhovuje, citelnost textu se vyrazne <br>
> zlepsila (tedy ve srovnani se zapisem po charu, knizku bych takhle <br>
> zapisovat nechtel) - kdyz takhle napisete duvod, proc se to tak chova, <br>
> prestane to byt magie a dava to smysl.<br>
><br>
> Bod b) - ono to Arduinovske IDE ma "uzasnou"" vlastnost, ze pri startu <br>
> otevre vsechny soubor .ino, .c a .h, ktere najde v adresari projektu. I <br>
> kdyz se nikde v textove podobe nejaky vzajemny include nevyskytuje, zrejme <br>
> staci, ze o nem vi editor a linkeru uz ho predhodi spravne. Smysl mi to <br>
> nedava, ale chova se to tak...<br>
><br>
<br>
Ale ved sa to chova tak, ako je to popisane:<br>
<a href="https://www.arduino.cc/en/Hacking/BuildProcess">https://www.arduino.cc/en/Hacking/BuildProcess</a><br>
<br>
<cite><br>
When your sketch is compiled, all tabs with no extension are<br>
concatenated together to form the "main sketch file". Tabs with .c or<br>
.cpp extensions are compiled separately. To use tabs with a .h<br>
extension, you need to #include it (using "double quotes" not <angle<br>
brackets>).<br>
</cite><br>
<br>
Takze otvori vsetky subory pri starte a potom zo vsetkych otvorenych<br>
zlepi vysledok....<br>
<br>
Mimochodom, toto nerobte:<br>
#include <xxx.c><br>
a<br>
#include "xxx.c"<br>
<br>
inkludovat *.c alebo *.cpp je nieco ako prdet v divadle.<br>
<br>
-m-<br>
<br>
> Co se tyka dalsich nejasnosti, tak nejvic mne ted aktualne trapily tyhle <br>
> tri zminene, zbytek se urcite casem objevi, jen si je ted nevybavim.<br>
><br>
> Jeste jednou diky.<br>
><br>
> Pavel Kutina<br>
<br>
_______________________________________________<br>
HW-list mailing list - sponsored by <a href="http://www.HW.cz">www.HW.cz</a><br>
<a href="mailto:Hw-list@list.hw.cz">Hw-list@list.hw.cz</a><br>
<a href="http://list.hw.cz/mailman/listinfo/hw-list">http://list.hw.cz/mailman/listinfo/hw-list</a>
<br>
<br>
_______________________________________________<br>
HW-list mailing list - sponsored by <a href="http://www.HW.cz">www.HW.cz</a><br>
<a href="mailto:Hw-list@list.hw.cz">Hw-list@list.hw.cz</a><br>
<a href="http://list.hw.cz/mailman/listinfo/hw-list">http://list.hw.cz/mailman/listinfo/hw-list</a><o:p></o:p></p>
</blockquote>
</div>
</body>
</html>