ceckovy kviz

Miroslav Šinko sinkomiro na gmail.com
Pondělí Září 4 08:28:33 CEST 2023


-co znamena "nefunguje"?
-preco sizeof a nie strlen)? Pre "xyz" je sizeof 4 a pre char str[8] je 
sizeof vzdy 8

miro

On 04.09.2023 07:44, wek wrote:
> Hm tak to som sice neskusil, mal som tam vzdy len "xyz",  ale preco by  
> v tom mal byt rozdiel?
> 
> wek
> 
> 
> On 4 September 2023 00:51:28 CEST, tomas mainzer <t.mainzer na gmail.com> 
> wrote:
> 
>     sizeof(retazec)   - tady zavisi co mu predhodite - string constant
>     ("xyz")  vs array (char str[8]) - a ani jedno nebude fungovat uplne
>     korektne (resp. dle "ocekavani").
> 
> 
> 
> 
>     ne 3. 9. 2023 v 23:00 odesílatel Jan Waclawek <konfera na efton.sk
>     <mailto:konfera na efton.sk>> napsal:
> 
>         Mam funkciu
> 
>            void LcdBPrint(uint32_t x, uint32_t y, char * s);
> 
>         ktora vypise retazec na LCD s rozmermi LCD_XMAX, LCD_YMAX na
>         poziciu x, y
>         pixelov od laveho horneho rohu.
> 
>         Vypisuje to neproporcionalnym fontom s rozmermi znaku FONT_XSIZE,
>         FONT_YSIZE.
> 
>         Z nejakych dovodov chcem vypisovat retazce zarovnane jeden za
>         druhym; ale
>         niekedy chcem vypisovat retazce pod seba zarovnane na pravy
>         okraj. To prve
>         vedie na volania typu:
> 
>            LcdBPrint(doteraz_napocitane_znaky_od_laveho_okraja *
>         FONT_XSIZE, riadok
>         * FONT_YSIZE , retazec);
> 
>         a to druhe na
> 
>            LcdBPrint(LCD_XMAX - strlen(retazec) * FONT_XSIZE, riadok *
>         FONT_YSIZE,
>         retazec);
> 
>         Vravim si, takto je to dost neprehladne, a pritom sa tam to
>         nasobenie furt
>         opakuje. A tiez, tie dve veci su navzajom dostatocne podobne.
>         Tak co keby
>         ze si napisem makro, do ktoreho bud zadam kladne x, co znamena pocet
>         znakov od laveho okraja, alebo zaporne x, co znamena pocet znakov od
>         praveho okraja:
> 
>            #define LcdBXPrint(xx, yy, s) LcdBPrint( (((xx) < 0) ?
>         LCD_XMAX : 0) +
>         (xx) * FONT_XSIZE, (yy) * FONT_YSIZE, s)
> 
>         Ked pisem zlava, tak mam
> 
>            LcdBXPrint(doteraz_napocitane_znaky_od_laveho_okraja, riadok,
>         retazec);
> 
>         co je pekne, prehladne, a funguje. Ale ked pisem zlava, tak
> 
>            LcdBXPrint(-sizeof(retazec), riadok, retazec);
> 
>         nefunguje.
> 
>         Preco?
> 
>         wek
> 
>         _______________________________________________
>         HW-list mailing list  -  sponsored by www.HW.cz <http://www.HW.cz>
>         Hw-list na list.hw.cz <mailto:Hw-list na list.hw.cz>
>         http://list.hw.cz/mailman/listinfo/hw-list
>         <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