Zacatecnicke dotazy v C
Josef Štengl
ok1ced na nagano.cz
Pátek Prosinec 18 15:34:58 CET 2015
Šmankote, co jeden neudělá, aby nemusel vytvořit jeden souboru navíc :-).
Ono dát text mezi FONTDEFINITION do c souboru, tak by se připraví zábavu, jako hledání proč tam daný objekt není nebo je
vícekrát, podle toho, jak si pamatuje nebo nastaví překlad :-)
Tím také odpovídám na otázku. Dát to do C a (v H) mít jen extern.
ced
Dne 18.12.2015 v 13:47 Jaroslav Buchta napsal(a):
> Ja mam fonty v .h souborech a pak mam jeden soubor .c, kam je volitelne includuju aby se vytvorily definice tech poli a
> zaroven se includuji do vsech dalsich .c souboru ktere je potrebuji.
> Duplicitu resim tak, ze v tom jedinem souboru .c mam neco extra definovaneho pred includy. Nejak takto:
>
> #ifndef FONTTAHOMA_12_H
> #define FONTTAHOMA_12_H
> ////////////////////////////////////////////////////////////////////////////////
> extern const uint8_t FontTahoma_12 [];
> ////////////////////////////////////////////////////////////////////////////////
> #ifdef FONTDEFINITION
> ////////////////////////////////////////////////////////////////////////////////
>
> const uint8_t FontTahoma_12 [] = {
> 96, //Characters count
> 18, //Max font height
> 15, //Max font width
> 0, //Padding
> ////////////////////////////////////////////////////////////////////////////////
> // Characters offset table
> ////////////////////////////////////////////////////////////////////////////////
> 0xc4, 0x00, //Character offset ' ' [0x20]; 0196
> 0xc7, 0x00, //Character offset '!' [0x21]; 0199
> 0xdc, 0x00, //Character offset '"' [0x22]; 0220
> ...
>
> a .c soubor:
>
> #define FONTDEFINITION
> #include "FontTahoma_12.h"
>
> Po vsech moznych variantach, co jsem zkousel,mitohle prijde jako nejprehlednejsi.
>
>
> Dne 18.12.2015 v 12:20 Milan B. napsal(a):
>> On 12/18/2015 10:43 AM, Pavel Kutina wrote:
>>> Priznam se, ze jsem ostuda ostudna a web arduina jsem prochazel jen zbezne a v mistech, ktere jsem akutne potreboval.
>>> Tohle mi uniklo, ted uz je jasne, ze asi bude lepsi v projektu udrzovat poradek...
>>>
>>> A co se tyka prdeni v divadle - tam si dokazu celkem predstavit, proc bych to nemel delat, pripadne co to pozitivniho
>>> ci negativniho mne (nebo okoli) prinese. Ale proc neincludovat .c netusim - konkretne treba soubor s fonty obsahuje
>>> celkem jedno velke pole a to je vsechno, to k nemu mam delat hlavicku a tu includovat? Co s kusy kodu, u kterych
>>> nechci, aby mi prekazely v aktualnim souboru? U Pascalu to bylo celkem jednoduche - co je hotove, ven s tim do dalsiho
>>> souboru, ten nainkludovat. Proc je to v C spatne? Mimochodem, ten "#include fonts.c" jsem "zdedil" spolu s knihovnou
>>> pro ovladani TFT, tu jsem sice kompletne prepsal (takze jsem praci s displejem -za cenu drobnych kompromisu, jako je
>>> treba nesnadna prenositelnost- zrychlil zhruba tricetinasobne), ale ten include uz tam zustal.
>>>
>>
>> Ide ciste o nejaku stabnu kulturu, prehladnost, zrozumitelnost projektu. U suborov *.c a *.cpp sa obvykle predpoklada,
>> ze je to samostatne kompilovatelna jednotka a nie ze sa inkluduje. Nejde len o cloveka, ale aj o rozne "systemy na
>> spravu projektov" - aj to vase Arduino IDE to predpoklada a fonts.c automaticky zahrnulo do projektu a skompilovalo ho.
>> Predpokladam, ze ak by ste ho inkludli, tak tie data tam budete mat dvakrat, ak sa to vobec zlinkuje.
>>
>> Staci ho premenovat - ja by som pouzil fonts.inc - a vsetci budu spokojni.
>>
>> -m-
>>
>>> Jinak pouzivani .h je dalsi bod na mem soukromem seznamu k vyjasneni (dobre, u knihoven si funkci vysvetlim celkem
>>> snadno), jak koukam, u C je potreba k programovani i nejaka ta literarni zajmova cinnost, tak si holt budu
>>> nasledujicich ctrnact dnu pred spanim cist misto Vondrusky nejakeho Ritchieho :)
>>>
>>> Pavel Kutina
>>>
>>
>> _______________________________________________
>> HW-list mailing list - sponsored by www.HW.cz
>> Hw-list na list.hw.cz
>> http://list.hw.cz/mailman/listinfo/hw-list
>
> _______________________________________________
> HW-list mailing list - sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
Další informace o konferenci Hw-list