Re: c: přetypování

Jaroslav Buchta jaroslav.buchta na hascomp.cz
Neděle Leden 13 07:13:20 CET 2019


Nechapu asi zamer, kdyz chcete nejak slozite manipulovat se strukturou a 
pak aby funkce vratila konstantu...
Dalsi vec je, ze pro ten PIC asi musi byt prekladac dost naohyban aby mu 
ta divna architektura instrukci trosku sedla, proste mi z toho vychazi, 
ze bych tu kritickou cast napsal v assembleru.

Dne 13.01.2019 v 0:43 Miroslav Draxal napsal(a):
>
> Dobrý den,
>
> Řeším tady jeden podprogram, který je časově kritický.
>
> typedef enum {
>
>                uint8_t value;
>
>                struct {
>
>                unsigned prvniBit :1;
>
>                unsigned druhyBit :1;
>
> };
>
> }_KontrolaDataResult_ ;
>
> _KontrolaDataResult_ pokus(void){
>
> // v podprogramu je cca 10x
>
> _KontrolaDataResult_ KontrolaDataResult;
>
> KontrolaDataResult.value = 0x19;
>
> return KontrolaDataResult;
>
> }
>
> Pokud na to kouknu do asm, dost blbě to tam je optimalizovaný, 
> optimalizace všechny zapnutý
>
> !            _KontrolaDataResult_ KontrolaDataResult;
>
> !            KontrolaDataResult.value = 0x19;
>
> 0x7D2E: MOVLW 0x19
>
> 0x7D30: MOVWF KontrolaDataResult_2242, ACCESS
>
> !            return KontrolaDataResult;
>
> 0x7D32: MOVF KontrolaDataResult_2242, W, ACCESS
>
> 0x7D34: RETURN 0
>
> prostě to nehodí klasicky
>
> RETLW 0x19
>
> Existuje nějaká možnost, jak to přetypovat?  …. Nějak takhle, 
> samozřejmě, že tohle je totální blbost
>
> return (_KontrolaDataResult_).value 0x19
>
> Díky, Míra
>
>
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list


------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20190113/97e10e14/attachment.html>


Další informace o konferenci Hw-list