Zacatecnicke dotazy v C

Jaroslav Buchta jaroslav.buchta na hascomp.cz
Pátek Prosinec 18 15:10:52 CET 2015


Klidne to muze byt .inc ale pak to myslim kazi umelecky dojem v nejakem 
mem oblibenem IDE - proste to nema spravnou barvu ve stromu souboru :-P
Tady to je ale .h hlavne proto, ze se jedna o automaticky generovany 
soubor, a pouziva se i jako klasicky .h - je tam ta deklarace extern 
pole... Pokud by to melo byt pouzite bez teto vlastnosti, tak to asi 
muze byt rovnou .c
Ale uznavam, ze je to trosku nestandardni, taky je to jediny pripad, kdy 
to takhle pouzivam, aby se soubory fontu daly jednoduse a na jednom 
miste konfigurovat.

Dne 18.12.2015 v 14:41 Milan B. napsal(a):
> On 12/18/2015 1:47 PM, Jaroslav Buchta wrote:
>> Ja mam fonty v .h 
>
> V .h by ale nemal byt ziaden kod (deklaracie inline funkcii sa v tomto 
> kontexte za kod nepovazuju) ani data.
>
> Odporucani na tuto temu su plne internety
>
> Preto pouzivam .inc - naznacuje, ze sa subor niekam inkluduje, ale nie 
> je to header file.
>
> -m-
>
>> 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
>
> _______________________________________________
> 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