<html><body>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><br><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</p><br><blockquote>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." <milan@bastl.sk><br>To: <hw-list@list.hw.cz><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>https://www.arduino.cc/en/Hacking/BuildProcess<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 www.HW.cz<br>Hw-list@list.hw.cz<br>http://list.hw.cz/mailman/listinfo/hw-list <br><br>_______________________________________________<br>HW-list mailing list  -  sponsored by www.HW.cz<br>Hw-list@list.hw.cz<br>http://list.hw.cz/mailman/listinfo/hw-list</blockquote></body></html>