Re: c: pøetypování - skr

Jan Waclawek konfera na efton.sk
Neděle Leden 13 13:04:41 CET 2019


[preposielam]

Dobry den,

v texte.


typedef enum {

               uint8_t value;

               struct {

               unsigned prvniBit :1;
               unsigned druhyBit :1;

               };

}_KontrolaDataResult_ ;

: uz som sice do C-cka dlhsie nepozrel, tak tejto konstrukcii velmi
nerozumiem. Ta
: konstrukcia  typedef enum je pre mna nezrozumitelna. Keby tam bol
union resp. namiesto
: enum prazdne miesto, tak by som tomu rozumel... Ale takto len
typujem, ze tam ma byt
: union... A ten je optimalizovany dobre.



_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ý


: Moja otazka, ktoru verziu kompilatora pouzivate? v1.xx alebo v2.xx?!
:
: Ak sa zacitate do readme fileov ku v2.xx, tak tam taka mudra poznamka
: ku "optimization" v duchu, ze nasledujuca verzia bude lepsia. Zrejme
dôsledok toho, ze
: mplabx a xc8 ma uz byt pre vsetky mcu od microchipu... Teda je
otazka ci novy xc8 bude
: skor v duchu klasiky HiTech alebo pojde cestou GCC...


!            _KontrolaDataResult_ KontrolaDataResult;

!            KontrolaDataResult.value = 0x19;

0x7D2E: MOVLW 0x19

0x7D30: MOVWF KontrolaDataResult_2242, ACCESS

!            return KontrolaDataResult;

0x7D32: MOVF KontrolaDataResult_2242, W, ACCESS

0x7D34: RETURN 0

urobi len to co ste mu prikazal....


prostì to nehodí klasicky

RETLW 0x19


: no skuste
:
: return(KontrolaDataResult.value = 0x19)
:
: alebo
:
: KontrolaDataResult.value = 0x19;
: return(0x19);


Prajem pekny den.



Další informace o konferenci Hw-list